GO 中常见的 flag 和 函数

  • defer 即延迟(defer)语句,你能够在函数中添加多个defer语句。当函数执行到最后时,这些defer语句会按照逆序执行,最后该函数返回。能够用来做为资源的关闭;
func ReadWrite() bool {
    file.Open("file")
    defer file.Close()
    if failureX {
        return false
    }
    if failureY {
        return false
    }
    return true
}
  • new func new(Type) *Type 内建函数 new 用来分配内存,它的第一个参数是一个类型,不是一个值,它的返回值是一个指向新分配类型零值的指针 形如:
     

func newInt() *int { var i int return &i } someInt := newInt()函数

* make
	  func make(Type, size IntegerType) Type
内建函数 make 用来为 slice,map 或 chan 类型分配内存和初始化一个对象(注意:只能用在这三种类型上) ,跟 new 相似,第一个参数也是一个类型而不是一个值,跟 new 不一样的是,make 返回类型的引用而不是指针,而返回值也依赖于具体传入的类型,具体说明以下:
Slice: 第二个参数 size 指定了它的长度,它的容量和长度相同。
	你能够传入第三个参数来指定不一样的容量值,但必须不能比长度值小。
	好比 make([]int, 0, 10)
Map: 根据 size 大小来初始化分配内存,不过度配后的 map 长度为 0,若是 size 被忽略了,那么会在初始化分配内存时分配一个小尺寸的内存  make(map[Type]Type)
Channel: 管道缓冲区依据缓冲区容量被初始化。若是容量为 0 或者忽略容量,管道是没有缓冲区的 make(chan Type)
相关文章
相关标签/搜索