make
和new都在堆中分配內存,但是他們卻有很大不同
1.new(T)新建了T類型的item,將內存清零,等待使用,而不是初始化內存,並返回地址*T,應用於數組和struct結構體,相當於&T{},
就是它返回了一個指向新分配的類型爲T的零值的指針
2.make(T)返回了類型T的初始化值,應用於3種內置的引用類型:slice數組切片,map映射,channel,並返回類型T(不是*T)的一個被初始化了的(不是零)實例。
make
和new都在堆中分配內存,但是他們卻有很大不同
1.new(T)新建了T類型的item,將內存清零,等待使用,而不是初始化內存,並返回地址*T,應用於數組和struct結構體,相當於&T{},
就是它返回了一個指向新分配的類型爲T的零值的指針
2.make(T)返回了類型T的初始化值,應用於3種內置的引用類型:slice數組切片,map映射,channel,並返回類型T(不是*T)的一個被初始化了的(不是零)實例。
本文使用go標準庫log進行日誌記錄 1.編寫自定義日誌收集器 package logger import ( "io" "log" "os" ) var ( Info *log.Logger