首页 > 其他 > 详细

golang书签

时间:2020-04-19 22:27:51      阅读:97      评论:0      收藏:0      [点我收藏+]

基本语法

  • 数组

[len]T共同构成数组类型,[3]int[4]int是不同类型

  • 切片

以数组申明切片需注意左闭右开原则。
var a []int == nil但是与nil map不同,不好理解

  • 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{}{}就是匿名结构的实例了

接口

  1. 空接口
    两种类型断言方式
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))    
    }
}

golang书签

原文:https://www.cnblogs.com/holidays/p/bookmark1.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!