美文网首页
Golang整理

Golang整理

作者: 冰泡泡薄荷味 | 来源:发表于2017-06-19 08:58 被阅读44次
    1. iota iota是golang的一个关键字,此关键字用来声明enum的时候采用,默认从0开始,每遇到一个类似const就会重置为0。
    2. 通过开头字母大小写来实现变量和函数的公有私有。
    3. 将数组作为函数参数进行传递时,实际传入的是该数组的副本。
    4. 由于初始化数组时无法预知定义多大的空间,就需要使用类似动态数组的结构,go语言中采用slice来实现数组的切片,类似python中的切片,slice是一个引用类型,它总是指向一个底层的array,slice的声明类似array,只是不需要长度。当引用改变其中的元素时,其他所有的引用也会相应改变。常用内置函数: len获取长度,cap获取容量,append追加元素,并返回一个和slice一样类型的slice,copy函数从源slice的src中复制元素到目标dst,并且返回复制的元素个数。
    5. map类似python中的字典,格式为map[keyType]valueType
      • map无序,必须通过key去获取。
      • 长度不固定,是一种引用类型。
      • len函数
      • map不是安全的,在多个goroutine中使用时必须使用mutex lock
    6. make用于内建类型(mapslicechannel)的内存分配。new用于各种类型的内存分配。
    7. goswitch默认相当于每个case后面都加了break。但是可以通过加fallthrough强制执行后后面的代码。
    8. main函数和init函数,在定义时不能有任何参数和返回值。
    9. 导入包时加前缀_是为了引入该包,而不直接使用包里面的函数,只是调用包中的init函数。
    10. interface是一组method签名的集合,可以通过interface来定义对象的一组行为。若某个对象实现了某个接口的所有方法,那么这个对象就实现了此接口。如果定义一个interface的变量,那么这个变量里面可以存实现这个interface的任意类型的对象。空interface可以存储任何类型的数值。
    11. element.(type)只能在switch中使用,其他地方不能使用。
    12. golang中的反射机制,就是能够检查程序在运行时的状态。

    相关文章

      网友评论

          本文标题:Golang整理

          本文链接:https://www.haomeiwen.com/subject/wdjyqxtx.html