Define Variables
mynumber := 1
mystring := "string"
var emptyint int
var emptystringarr []string
var sum int = 2
Conversions
Convert to String
mystring := string(var)
Convert to Integer
number, err := strconv.Atoi(mystring)
Loops
For Each Loop
for index, element := range myarr {
}
Loop Over Database Rows
for routes.Next() {
var link string
routes.Scan(&link)
CheckRoute(link)
}
Read File
In one String
func readFileAsString(filename) string {
dat, err := os.ReadFile(filename)
if err != nil {
log.Fatal(err)
}
return string(dat)
}
Split String
lines := strings.Split(fulltext, "\n")
Contains SubString
mystring := "Hello World"
if strings.Contains(mystring, "hello") {
return true
}
String starts with
input := "This start with This"
if strings.HasPrefix(input, "This") {
return true
}
Functions
func myfunction(parameter1 string, parameter2 int) string {
//...
return mystring
}
Print Objects/Structs
fmt.Printf("%+v\n", mystruct)
Goroutines
for element := range array {
go process(element)
}
Limiting Go Routines
limiter := make(chan int, 8)
for element := range array {
limiter <- 1
go func(e element) {
process(e)
<- limiter
}(element)
}
JSON
Use Null instead of 0 and empty string
By default a nil value will be encoded as "" or 0 in the json-string.
You can tell go to encode it as null
by adding omitempty
to the declaration.
type Order struct {
empty1 int `json:"empty1"` // will be 0
empty2 int `json:"empty2,omitempty"` // will be null
empty3 string `json:"empty3"` // will be ""
empty4 string `json:"empty4,omitempty"` // will be null
}