go-learning

module
v0.0.0-...-f598266 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jan 2, 2024 License: MIT

README

Go Learning

This repository is created to record my journey of learning Go programming language. It contains various examples and exercises I have worked on during my learning process.

Getting Started

  • Install Go: Official Installation Guide

  • Clone this repository to your local machine:

      git clone https://github.com/lqgl/go-learning.git
    
  • Explore the different folders and files for examples, exercises and notes on Go programming language.

Contributing

Contributions to this repository are highly appreciated. If you find any errors or have suggestions for improvement, please feel free to open an issue or create a pull request.

License

This repository is licensed under the MIT License. See LICENSE for more information.

Directories

Path Synopsis
tdd-learning
tgpl
ch1/dup1
Dup1 prints the text of each line that appears more than once in the standard input, preceded by its count.
Dup1 prints the text of each line that appears more than once in the standard input, preceded by its count.
ch1/dup2
Dup2 prints the count and text of lines that appears more than once in the input.
Dup2 prints the count and text of lines that appears more than once in the input.
ch1/echo1
Echo1 prints its command-line arguments.
Echo1 prints its command-line arguments.
ch1/echo2
Echo2 prints its command-line arguments.
Echo2 prints its command-line arguments.
ch1/echo3
Echo3 prints its command-line arguments.
Echo3 prints its command-line arguments.
ch1/fetch
Fetch prints the content found at a URL.
Fetch prints the content found at a URL.
ch1/fetchall
Fetchall fetches URLs in parallel and reports their times and sizes.
Fetchall fetches URLs in parallel and reports their times and sizes.
ch1/helloworld
Helloworld prints hello 世界 text
Helloworld prints hello 世界 text
ch1/lissajous
Lissajous genarates GIF animation of random Lissajous figures.
Lissajous genarates GIF animation of random Lissajous figures.
ch1/server1
Serve1 is a minimal "echo" server.
Serve1 is a minimal "echo" server.
ch1/server2
Server2 is a minimal "echo" server and counter server.
Server2 is a minimal "echo" server and counter server.
ch1/server3
Server3 report on the headers and form fata that it recieves.
Server3 report on the headers and form fata that it recieves.
ch10/jpeg
The jpeg command reads a PNG image from the standard input and writes it as a JPEG image to the standard output.
The jpeg command reads a PNG image from the standard input and writes it as a JPEG image to the standard output.
ch11/echo
Echo prints its command-line arguments.
Echo prints its command-line arguments.
ch11/word1
Package word provides utilities for word games.
Package word provides utilities for word games.
ch11/word2
Package word provides utilities for word games.
Package word provides utilities for word games.
ch2/boiling
Boiling prints boiling point of water.
Boiling prints boiling point of water.
ch2/cf
Cf converts its numeric argument to Celsius and Farenheit.
Cf converts its numeric argument to Celsius and Farenheit.
ch2/echo4
Echo4 prints its command-line arguments.
Echo4 prints its command-line arguments.
ch2/ftoc
Ftoc prints two Fahrenheit-to-Celsius convensions.
Ftoc prints two Fahrenheit-to-Celsius convensions.
ch2/popcount
Popcount population count.
Popcount population count.
ch2/tempconv
Package tempconv performs Celsuis and Farenheit temperature computations.
Package tempconv performs Celsuis and Farenheit temperature computations.
ch2/tempconv0
Package tempconv performs Celsius and Farenheit temperature computations.
Package tempconv performs Celsius and Farenheit temperature computations.
ch3
Integer: some operations of integers.
Integer: some operations of integers.
ch3/basename1
Basename removes directory components and a .suffix.
Basename removes directory components and a .suffix.
ch3/basename2
Basename simpler version uses the strings.LastIndex library function.
Basename simpler version uses the strings.LastIndex library function.
ch3/comma
Comma inserts commas in a non-negative decimal integer string.
Comma inserts commas in a non-negative decimal integer string.
ch3/mandelbrot
Mandelbrot emits a PNG image of the Madelbrot fractal.
Mandelbrot emits a PNG image of the Madelbrot fractal.
ch3/netflag
Netflag
Netflag
ch3/printints
intsToString is like fmt.Sprintf(values) but adds commas.
intsToString is like fmt.Sprintf(values) but adds commas.
ch3/surface
Surface computes an SVG rendering of a 3-D surface function.
Surface computes an SVG rendering of a 3-D surface function.
ch4/append
Append
Append
ch4/charcount
Charcount computes counts of Unicode characters.
Charcount computes counts of Unicode characters.
ch4/github
Package github provides a Go API for the GitHub issue tracker.
Package github provides a Go API for the GitHub issue tracker.
ch4/nonempty
Nonempty is an example of an in-place slice algorithm.
Nonempty is an example of an in-place slice algorithm.
ch4/sha256
Sha256
Sha256
ch5/findlinks1
Findlinks1 prints the links in an HTML document read from standard input.
Findlinks1 prints the links in an HTML document read from standard input.
ch5/links
Package links provides a link-extraction function.
Package links provides a link-extraction function.
ch8/cake
Package cake provides a simulation of a concurrent cake shop with numerous parameters.
Package cake provides a simulation of a concurrent cake shop with numerous parameters.
ch8/du1
The du1 command computes the disk usage of the files in a directory.
The du1 command computes the disk usage of the files in a directory.
ch8/du3
The du1 command computes the disk usage of the files in a directory.
The du1 command computes the disk usage of the files in a directory.
ch8/du4
The du1 command computes the disk usage of the files in a directory.
The du1 command computes the disk usage of the files in a directory.
ch8/netcat1
Netcat1 is a read-only TCP client.
Netcat1 is a read-only TCP client.
ch8/thumbnail
The thumbnail package produces thumbnail-size images from larger images.
The thumbnail package produces thumbnail-size images from larger images.
ch9/bank1
Package bank provided a concurrency-safe bank with one account.
Package bank provided a concurrency-safe bank with one account.
ch9/bank2
Package bank provided a concurrency-safe bank with one account.
Package bank provided a concurrency-safe bank with one account.
ch9/bank3
Package bank provided a concurrency-safe bank with one account.
Package bank provided a concurrency-safe bank with one account.
ch9/memo1
Package memo provides a concurrency-unsafe memoization of a function of type Func.
Package memo provides a concurrency-unsafe memoization of a function of type Func.
ch9/memo2
Package memo provides a concurrency-unsafe memoization of a function of type Func.
Package memo provides a concurrency-unsafe memoization of a function of type Func.
ch9/memo3
Package memo provides a concurrency-unsafe memoization of a function of type Func.
Package memo provides a concurrency-unsafe memoization of a function of type Func.
ch9/memo4
Package memo provides a concurrency-unsafe memoization of a function of type Func.
Package memo provides a concurrency-unsafe memoization of a function of type Func.
ch9/memo5
Package memo provides a concurrency-unsafe memoization of a function of type Func.
Package memo provides a concurrency-unsafe memoization of a function of type Func.
ch9/memotest
Package memotest provides common functions for testing various designs of the memo package.
Package memotest provides common functions for testing various designs of the memo package.
psets1/pset1.1
Pset1.1 prints the name of the command invoked.
Pset1.1 prints the name of the command invoked.
psets1/pset1.10
Pset1.10 edit fetchall program, writes content to file.
Pset1.10 edit fetchall program, writes content to file.
psets1/pset1.12
Pset1.12 modify lissajous server by reading arguement from URL.
Pset1.12 modify lissajous server by reading arguement from URL.
psets1/pset1.2
Pset1.2 prints index and value of its command-line arguments.
Pset1.2 prints index and value of its command-line arguments.
psets1/pset1.3
Pset1.3 measure the time difference between low efficency program and using strings.Join program.
Pset1.3 measure the time difference between low efficency program and using strings.Join program.
psets1/pset1.4
Pset1.4 modify dup2 program, prints file name appears duplicate lines more than once.
Pset1.4 modify dup2 program, prints file name appears duplicate lines more than once.
psets1/pset1.5
Pset1.5 change lissajous program's palette to green on blank, for added authenticity.
Pset1.5 change lissajous program's palette to green on blank, for added authenticity.
psets1/pset1.6
Pset1.6 add more colors to lissajous program's palette and change the third argument of SetColorIndex to genarate colorful figures.
Pset1.6 add more colors to lissajous program's palette and change the third argument of SetColorIndex to genarate colorful figures.
psets1/pset1.7
Pset1.7 replace io.ReadAll with io.Copy(dst, src).
Pset1.7 replace io.ReadAll with io.Copy(dst, src).
psets1/pset1.8
Pset1.8 edit fetch program to add a http:// prefix if input URL not has prefix.
Pset1.8 edit fetch program to add a http:// prefix if input URL not has prefix.
psets1/pset1.9
Pset1.7 prints HTTP code in fetch.
Pset1.7 prints HTTP code in fetch.
psets2/pset2.1
Pset2.1 processing temperatures in the Kelvin scale.
Pset2.1 processing temperatures in the Kelvin scale.
psets2/pset2.2
Pset2.2 converts numeric command-line arguments in feet&meters and pounds&kilograms.
Pset2.2 converts numeric command-line arguments in feet&meters and pounds&kilograms.
psets2/pset2.3
Pset2.3 Rewirte PopCount to use a loop instead of a single expression.
Pset2.3 Rewirte PopCount to use a loop instead of a single expression.
psets2/pset2.4
Pset2.4 PopCount counts bits by shfiting its argument through 64 bit positions.
Pset2.4 PopCount counts bits by shfiting its argument through 64 bit positions.
psets2/pset2.5
Pset2.5 PopCount by useing x&(x-1).
Pset2.5 PopCount by useing x&(x-1).
psets3/pset3.1
Pset3.1 handle if f() returns infinite float.
Pset3.1 handle if f() returns infinite float.
psets3/pset3.10
Pset3.10 a iteration version.
Pset3.10 a iteration version.
psets3/pset3.11
Pset3.11 enhance comma to deals correctly with floating-point numbers and an optional sign.
Pset3.11 enhance comma to deals correctly with floating-point numbers and an optional sign.
psets3/pset3.12
Pset3.11 reports whether two strings are anagrams of each other.
Pset3.11 reports whether two strings are anagrams of each other.
psets3/pset3.13
Pset3.13 writes const declarations for KB, MB, up through YB as compactly as you can.
Pset3.13 writes const declarations for KB, MB, up through YB as compactly as you can.
psets3/pset3.2
Pset3.2 using other functions in math package.
Pset3.2 using other functions in math package.
psets3/pset3.3
Pset3.3 change top and bottom color of svg.
Pset3.3 change top and bottom color of svg.
psets3/pset3.4
Pset3.5 computes an SVG rendering of a 3-D surface function, and writes to client.
Pset3.5 computes an SVG rendering of a 3-D surface function, and writes to client.
psets3/pset3.5
Pset3.5 emits a corlorful PNG image of the Madelbrot fractal.
Pset3.5 emits a corlorful PNG image of the Madelbrot fractal.
psets3/pset3.6
Pset3.6 supersampling.
Pset3.6 supersampling.
psets4/pset4.1
Pset4.1 popCount of sum256.
Pset4.1 popCount of sum256.
psets4/pset4.2
Pset4.2 prints the SHA256/SHA384/SHA512 hash of stdin.
Pset4.2 prints the SHA256/SHA384/SHA512 hash of stdin.
psets4/pset4.3
Pset4.3 rewrite reverse to use an array pointer instead of a slice.
Pset4.3 rewrite reverse to use an array pointer instead of a slice.
psets4/pset4.4
Pset4.4 write a version of rotate that operates in a single pass.
Pset4.4 write a version of rotate that operates in a single pass.
psets4/pset4.5
Pset4.5 writes an in-place function to eliminate adjacent duplicates in a []string slice.
Pset4.5 writes an in-place function to eliminate adjacent duplicates in a []string slice.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL