本文中介紹乙個奇怪現象,乙個空列表(或切片),卻可以列印出列表中的內容。
以下**中,在乙個json字串中,定義乙個列表,列表中有乙個空字串。
接著,將json字串解析到結構體中,最後,列印結構體中的字串列表。
package main
import
("fmt"
"encoding/json"
)type host struct
func
main()
`)h := host
err := json.
unmarshal
(b,&h)
if err !=
nil fmt.
println
("host:"
, h)
fmt.
println
("iplist:"
, h.iplist,
", len:"
,len
(h.iplist)
)for
_,ip :=
range h.iplist
}
output:
host:從輸出可以看到,iplist: , len: 1
ip: , len: 0
iplist
是空列表,在遍歷時,卻可以列印出內容–空字串。 golang 定義乙個空切片 go語言切片用法詳解
1.定義 切片在go語言的原始碼定義如下所示,由於其資料結構中有指向底層陣列的指標,所以切片是一種引用型別。src runtime slice.go type slice struct s1 array 0 4 s2 array 4 s3 array 2 fmt.println s1 0 1 2 3...
關於golang中的切片詳解
之前對切片的理解是本身是乙個指標,指標指向陣列,因為陣列是值賦值,所以陣列作為函式引數傳遞時,會被複製乙份,傳遞較大陣列時會比較浪費記憶體。之前的理解部分對,但是瑕疵和錯誤的地方太多。切片本身是乙個結構體,它是被golang封裝過的結構體,所以使用起來和陣列差不多,其結構體內容如下 type sli...
golang中的空slice案例
package main func main 執行成功 補充 golang slice 詳解 func main var slice array 1 7 array startindex endindex 不包含endindex 2.直接建立陣列切片 slice2 make int,5,10 3.直...