[len]T共同构成数组类型,
[3]int
和[4]int
是不同类型
以数组申明切片需注意左闭右开原则。
var a []int == nil
但是与nil map不同,不好理解
必须make初始化,否则panic报nil map
下面代码很奇怪
func main() {
type Map map[string][]int
m := make(Map)
s := []int{1, 2}
s = append(s, 3)
fmt.Printf("%+v\n", s)
m["q1mi"] = s
s = append(s[:1], s[2:]...)
fmt.Printf("%+v\n", s)
fmt.Printf("%+v\n", m["q1mi"])
}
struct{}
可以看作是匿名结构体类型,struct{}{}
就是匿名结构的实例了
func funcA(a interface{}) {
v, ok = a.(string) // 空接口变量.(具体类型), 返回值可以不取ok
if !ok {
fmt.Println("Guess failed")
} else {
fmt.Println(v)
}
}
func funcB(a interface{}) {
switch t := a.(type) { // 空接口变量.(type) 只能写到switch块内
case int64:
fmt.Printf("I‘m a int64, %v, %v", t, a.(int64))
case string:
fmt.Printf("I‘m a string, %v, %v", t, a.(string))
}
}
原文:https://www.cnblogs.com/holidays/p/bookmark1.html