變數賦值
golang中所有的變數都是值賦值,那麼陣列、chan、map等,需要make的物件是怎麼操作的?
自測發現
這些需要make的物件是引用賦值,也就是說新變數和舊變數操作的是同乙個記憶體空間。
但是我們自己定義的struct都會把裡面的成員乙個乙個的複製過去。
如果我們struct裡有陣列、chan、map時,對他們的複製還是引用,也就是說
陣列、chan、map這些變數只有引用賦值,不會產生值賦值的情況。
或理解陣列、chan、map這些變數的值就是那塊記憶體的位址,也就是說他們都是制定型別的指標。
但是int 與*int還是不一樣
var a int
var p*int
只有 p=&a
不能 p=a
但實際上p和a在使用上是一樣的。
golang學習日誌 19 12 6
利用函式strconv.atoi 返回 乙個是轉換結果,乙個是是否轉換成功 strconv.atoi str 練習1 判斷是否是素數 package isprime import fmt func isprimenumber i int bool return flag func main if f...
golang學習筆記 日誌庫 logrus
官方自己宣傳的最大亮點是 結構化。logrus的github位址 lfshook的github位址 file rotatelogs的github位址 pkg errors的github位址 這個日誌依賴庫,需要使用 func main info 描述資訊為golang日誌框架logrus的學習 設定...
golang日誌框架 logrus學習筆記
golang標準庫的日誌框架非常簡單,僅僅提供了print,panic和fatal三個函式,對於更精細的日誌級別 日誌檔案分割以及日誌分發等方面並沒有提供支援。所以催生了很多第三方的日誌庫,而logrus就是其中的一款第三方日誌庫,它的功能強大,效能高效,而且具有高度靈活性,提供了自定義外掛程式的功...