第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

初始化空切片的正確方法

初始化空切片的正確方法

Go
慕妹3242003 2021-09-21 22:16:38
要聲明一個具有非固定大小的空切片,最好這樣做:mySlice1 := make([]int, 0)或者:mySlice2 := []int{}只是想知道哪個是正確的方法。
查看完整描述

3 回答

?
喵喔喔

TA貢獻1735條經驗 獲得超5個贊

它們是等價的??吹竭@個代碼:


mySlice1 := make([]int, 0)

mySlice2 := []int{}

fmt.Println("mySlice1", cap(mySlice1))

fmt.Println("mySlice2", cap(mySlice2))

輸出:


mySlice1 0

mySlice2 0

兩個切片都有0容量,這意味著兩個切片都有0長度(不能大于容量),這意味著兩個切片都沒有元素。這意味著 2 個切片在各個方面都是相同的。


查看完整回答
反對 回復 2021-09-21
?
絕地無雙

TA貢獻1946條經驗 獲得超4個贊

作為@ANisus回答的補充...


以下是“Go in action”一書中的一些信息,我認為值得一提:


nil&empty切片的區(qū)別

如果我們考慮這樣的切片:


[pointer] [length] [capacity]

然后:


nil slice:   [nil][0][0]

empty slice: [addr][0][0] // points to an address

零切片

當您想要表示一個不存在的切片時,它們很有用,例如在返回切片的函數(shù)中發(fā)生異常時。


// Create a nil slice of integers.

var slice []int

空切片

當您想要表示一個空集合時,例如當數(shù)據(jù)庫查詢返回零結果時,空切片很有用。


// Use make to create an empty slice of integers.

slice := make([]int, 0)


// Use a slice literal to create an empty slice of integers.

slice := []int{}

不管您使用的是零片或空片,內置的功能append,len和cap工作一樣。


去游樂場示例:


package main


import (

    "fmt"

)


func main() {


    var nil_slice []int

    var empty_slice = []int{}


    fmt.Println(nil_slice == nil, len(nil_slice), cap(nil_slice))

    fmt.Println(empty_slice == nil, len(empty_slice), cap(empty_slice))


}

印刷:


true 0 0

false 0 0


查看完整回答
反對 回復 2021-09-21
  • 3 回答
  • 0 關注
  • 261 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號