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)
相關文章
相關標籤/搜索