Golang踩坑 Slice作為函式引數傳遞

2021-09-18 06:46:38 字數 547 閱讀 6418

不是golang坑太多,是自己水平不夠強! —— 9命怪貓

slice對應著c/c++是個類似指標的存在。在golang裡面,slice很好用,很靈活。但是,所有「很靈活」,在計算機世界裡也意味著「很多坑」。

來看乙個例子:

package main

import "fmt"

func add2slice(s int, t int)

func main()

add2slice(a, 4)

fmt.println(a)

}//結果是...

意外不意外?!驚喜不驚喜?!

package main

import "fmt"

func add2slice(s *int, t int)

func main()

add2slice(&a, 4)

fmt.println(a)

}// 結果顯示

Golang學習踩坑

學習一門新語言,難免少不了踩坑,很多坑都是因為上個語言遺留下來的習慣,在這裡記錄一下 jetbrains goland 編寫go語言的時候,不能直接寫import,一般寫main 的時候會自動匯入 go語言申明的變數必須使用,不然會編譯報錯 go語言一行一句,不支援分行,不需要 如果你想把多行語句並...

golang中切片 slice 的坑

golang中陣列的長度是不可以變得,但是某些場合就不使用了,go提供了一種靈活,功能強悍的型別 切片,切片中有兩種概念 一種是len長度,二是cap容量,長度是已經被賦值的最大下標 1,可以通過len函式獲得切片的長度。容量是指切片最大可容納多少個元素,可以通過cap函式獲得,切片是引用型別,因此...

golang中陣列和slice作為引數的區別

最近專案中有遇到類似問題,做個記錄。舉個例子,5 int為陣列,int為slice 陣列切片 陣列是值型別,而slice為引用型別,值型別作為引數傳入函式,只是拷貝了個副本,修改並不會作用到傳入的那個引數,所以一般使用slice作為引數,免去了拷貝的消耗,但是有坑在裡面,下面寫例子說明。1.slic...