获取 UNIX 时间戳
now := time.Now().Unix()
fmt.Println("type: %T, value: %v", now, now)
type: int64, value: 1535031653
向 slice 里追加元素
s := []int{1, 2, 3}
s = append(s, 4)
fmt.Println(s)
[1 2 3 4]
遍历 map
m := make(map[string][]int)
m["hello"] = []int{1, 2, 3}
m["world"] = []int{4, 5, 6}
for k, v := range m {
fmt.Println(k, v)
}
for k := range m {
fmt.Println(k)
}
for _, v := range m {
fmt.Println(v)
}
hello [1 2 3]
world [4 5 6]
hello
world
[1 2 3]
[4 5 6]
删除 map 中的元素
m := make(map[string][]int)
m["hello"] = []int{1, 2, 3}
m["world"] = []int{4, 5, 6}
delete(m, "hello")
for k, v := range m {
fmt.Println(k, v)
}
world [4 5 6]
值得注意的一点:在对一个 map 的 range loop 中,删除 map 的元素,例如下面这段伪代码,是安全的。
for key := range m {
if key.expired() {
delete(m, key)
}
}
详细问题及解释见 StackOverflow
结构体的定义和初始化
type st struct {
a int
b int
c string
}
x := st{a: 10, b: 20, c: "hello"}
fmt.Println(x)
x.c = "world"
fmt.Println(x)
{10 20 hello}
{10 20 world}