Golang 速查表

Golang 速查表

May 30, 2020
速查表
★ 在 GitHub 赞我

Cyanhall 创建.


fmt.Println(var)
fmt.Sprintf("hello %s! happy coding.", str)
fmt.Sprintf("%v", bytes)

type Config struct {
    Name bool `json:"name"` // OK

    Name bool `json: "name"` // Error
    Name bool `json:name` // Error
}

字符串:

import (
    "strings"
)
strings.Contains("something", "some") // true

数组和切片(slice):

// Array
var number_array [3]int // [0, 0, 0]
append(number_array, 1) // Error
number_array[0] = 1 // [1, 0, 0]

// Slice
var number_slice []int // []
// Recreate to append
number_slice = append(number_slice, 1) // [1]
// Create a new slice from an array
some_numbers := number_array[0:1] // [0]

Map:

your_map := make(map[string]int)
your_map["key"] = 1
fmt.Println(your_map["key"]) // 1
// Remove key
delete(elements, "key")

Loop:

names := []string{"a", "b", "c"} // [a b c]
for i, name := range names {
	fmt.Printf("%d. %s\n", i+1, name)
}
// 1. a
// 2. b
// 3. c

使用 Delve 调试

dlv debug app.go

在调试器里面:

# 设置断点
break [path/filename].go:[line_num]

# 执行到断点的地方
continue

# 打印变量
print [variable_name]

# 执行下一行
next

Gin:

// Read Request Body in JSON
type GitHubInput struct {
	Zen string `json:"zen"`
}
var input GitHubInput
if err := c.ShouldBindJSON(&input); err != nil {
	c.JSON(http.StatusBadRequest, gin.H{"error": err.Error()})
	return
}
input.Zen

// Read Header
c.Request.Header.Get("X-GitHub-Event")

// HTTP Response
c.JSON(http.StatusBadRequest, gin.H{"error": err.Error()})
c.String(200, input.Zen)