📖 Advanced Golang Syntax In A4
Switch branches/tags
Nothing to show
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
code
misc
.gitignore
.travis.yml
README.org
cheatsheet-golang-A4.pdf
gomega.org

README.org

1 Golang CheatSheet

linkedin
github
slack


PRs Welcome

File me Issues or star this repo.

1.1 Golang Conversion

NameComment
Convert string to inti, _ := strconv.ParseInt(“12345”, 10, 64)
Convert string to inti, err := strconv.Atoi(“-42”)
Convert string to listL := strings.Split(“hi,golang”, “”)
Convert string to []byte[]byte(“abcXX”)
Convert string to float32f, _ := strconv.ParseFloat(“3.1415”, 32)
Convert int to float320.5*float32(age)+7>= float32(age2)
Convert int to strings := strconv.Itoa(-42)
Convert rune to stringstring(rune1)
Convert list to stringstrings.Join(list, “, “)
Convert list to bytebyteI := byte(65)
Convert byte to intint(byte('a'))
Convert bytes to stringstring([]byte("abcXX"))
Convert int32 to int32 Pointerfunc int32Ptr(i int32) *int32 { return &i }
Convert string[] to stringstrings.Join([]string{“a”, “b”}, “,”)

1.2 Golang Code Structure & Common Algorithms

NameComment
Online Go Playgroudhttps://play.golang.org/
One line if statementif a >= 1 { fmt.Print(“yes”) }
Declare variables with initializersvar ischecked, v, str = false, 2, “yes!”
switchcode/example-switch.go
queueLeetcode: Number of Recent Calls
bfscode/tree-bfs.go
trie treecode/tree-trie.go

1.3 Syntax Sugar: From Python To Golang

NamePythonGolang
sum slicesum([1, 2, 3])sum := 0; for i := range nums { sum += nums[i] }
Get last itemnums[-1]nums[len(nums)-1]
Forfor i in range(10):for i := 0; i < 10; i++
Loop listfor num in [1, 2]for num := range[]int{1, 2} { fmt.Print(num) }
Loop stringfor ch in str:for _, ch := range str { fmt.Print(ch) }
Iteratorfor num in nums:for _, num := range nums {fmt.Print(num)}
Whilewhile isOK:for isOK
Check ch rangeord(ch) in range(ord('a'), ord('z')+1)ch >=’a’ && ch <=’z’
Get minmin(2, 6, 5)
Check is nilroot is Noneroot == nil
Reverse listnums[::-1]Need to create your own function. Weird!

1.4 Golang Array/List/Slice

NameComment
Make a arrayvar a [2]string; a[0]=”hello”; a[1]=”world”
Create array with given valuesl := [6]int{2, 3, 7, 5, 11, 13}
Create array with given valuesl := []string{“a”, “c”, “b”, “d”}
Create dynamically-sized arraysa := make([]int, 5)
Create dynamically-sized arraysa := make([]int, 1, 5) // 5 is capacity
Sort string arraysort.Strings(l); fmt.Print(l)
Sort int arraysort.Ints(l) //in-place change
Append iteml = append(l, “e”)
Append itemsl = append(l, “e”, “b”, “c”)
Append item to head/prependl = append([]string{"a"}, l...)
Remove last iteml = l[:len(l)-1]
Remove item by indexl = append(l[0:1], l[2:]...)
Slices of a arrayvar l2 = l[1:3] // Notice: it’s a reference
Copy a listb := make([]l, len(a)); copy(b, a)
Join two listsl1 = append(l1, l2...)
Use pointer of array listcode/pointer-array.go

1.5 Golang String

NameComment
ReferenceLink: package strings
Format stringfmt.Sprintf("At %v, %s", e.When, e.What)
Format stringfmt.Printf("int: %d, float: %f, bool: %t\n", 123, 78.9, true)
Split stringvar L = strings.Split("hi,golang", ",")
Replace stringvar str2 = strings.Replace("hi,all", ",", ";", -1)
Replace stringstrings.Replace("aaaa", "a", "b", 2) //bbaa
Split string by separatorstrings.Split(path, " ")
Count charactersstrings.Count("test", "t")
Substringstrings.Index("test", "e")
Join stringstrings.Join([]string{"a","b"}, "-")
Repeat stringstrings.Repeat("a", 2) // aa
Lower stringstrings.ToLower("TEST")
Trim whitespace in two sidesstrings.TrimSpace("\t Hello world!\n ")
Trim trailing whitespacestrings.TrimRight("\t Hello world!\n ", "\n ")
Concact stringfmt.Sprintf("%s%s", str1, str2)

1.6 Golang Integer/Float

NameComment
Int maxMaxInt32 = 1<<31 - 1 golang math
Int minMinInt32 = -1 << 31 golang math
Pass int as referencesample code

1.7 Golang Package management

NameComment
go modLink: go modules
go get fixGO111MODULE=off go get -fix ./...

1.8 Golang Ascii

NameComment
get character asciibyte('0')
ascii offsetfmt.Println(string('B' + byte('a')-byte('A')))

1.9 Golang Dict/Hashmap/Map

NameComment
Create dictmap[string]int{"a": 1, "b": 2}
Create dictmake(map[string]int)
Check existence_, ok := m[k]
Delete keydelete(m, "k1")
Create a map of listsm := make(map[string][]string)

1.10 Golang Goroutines

NameComment
Basic goroutinecode/example-goroutine.go

1.11 Golang Inteface

NameComment
Hash map with both key and value dynamicmap[interface{}]interface{}
Convert map[interface {}]interface {} to map[string]stringcode/interface-conversion.go

1.12 Golang Files & Folders

NameComment
Read filescode/example-read-file.go
Write filescode/example-write-file.go

1.13 Golang Bit Operator & Math

NameComment
Shift leftfmt.Print(1 << 10) // 1024
Shift rightfmt.Print(1024 >> 3) // 128
pow(2, 3)int(math.Pow(2, 3)) // Default is float64

1.14 More Resources

https://play.golang.org/

https://tour.golang.org/list

https://golang.org/doc/

https://github.com/a8m/go-lang-cheat-sheet

License: Code is licensed under MIT License.

linkedin github slack