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

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

關(guān)于Go語言中數(shù)組的參數(shù)傳遞問題

關(guān)于Go語言中數(shù)組的參數(shù)傳遞問題

富國滬深 2019-03-29 10:59:04
一個很微妙的一個問題。從下面的代碼可以看出:1、類型為“[5]int”的數(shù)組在作為參數(shù)時,其實(shí)作為值來傳遞的。2、類型為“[]int”的數(shù)組在作為參數(shù)時,其實(shí)作為引用來傳遞的。這是由于“[]int”是一個接口么?還是說以“[]int”定義的就是一個slice?待確定。代碼片段(2):[代碼]數(shù)組作為參數(shù)時的值傳遞packagemainimport"fmt"funcmodify(array[5]int){array[0]=10fmt.Println("Inmodify(),arrayvalues:",array)}funcmain(){array:=[5]int{1,2,3,4,5}modify(array)fmt.Println("Inmain(),arrayvalues:",array)}運(yùn)行結(jié)果:Inmodify(),arrayvalues:[102345]Inmain(),arrayvalues:[12345][代碼]數(shù)組作為參數(shù)時的引用傳遞packagemainimport"fmt"funcmodify(array[]int){array[0]=10fmt.Println("Inmodify(),arrayvalues:",array)}funcmain(){array:=[]int{1,2,3,4,5}modify(array)fmt.Println("Inmain(),arrayvalues:",array)}運(yùn)行結(jié)果:Inmodify(),arrayvalues:[102345]Inmain(),arrayvalues:[102345]
查看完整描述

2 回答

?
泛舟湖上清波郎朗

TA貢獻(xiàn)1818條經(jīng)驗(yàn) 獲得超3個贊

[]int和[5]int這兩種表達(dá)方式在Go語言里有根本性的區(qū)別。[]int不是數(shù)組,而是數(shù)組切片(slice),而[5]int是一個數(shù)組。在Go語言中,數(shù)組是值類型,而數(shù)組切片是引用類型。值類型變量在函數(shù)調(diào)用時的參數(shù)傳遞中會被完整拷貝一次變量內(nèi)容,之后函數(shù)內(nèi)操作的只是這個拷貝的副本。這是第32頁例子中所表現(xiàn)出來的,函數(shù)內(nèi)對數(shù)組的修改不會影響函數(shù)外的原始數(shù)組內(nèi)容的原因。一般而言,參數(shù)類型會選擇數(shù)組切片而非數(shù)組,以避免拷貝所導(dǎo)致的性能損耗。希望已經(jīng)解釋清楚,沒有的話請繼續(xù)??磥砦覀冞@本書再版的時候需要多花一些篇幅解釋數(shù)組和數(shù)組切片的區(qū)別。
                            
查看完整回答
反對 回復(fù) 2019-03-29
?
慕虎7371278

TA貢獻(xiàn)1802條經(jīng)驗(yàn) 獲得超4個贊

第一種是數(shù)組,go中數(shù)組是值類型
第二種是slice,是引用,不過array:=[]int{1,2,3,4,5},也會產(chǎn)生一個匿名的數(shù)組。
                            
查看完整回答
反對 回復(fù) 2019-03-29
  • 2 回答
  • 0 關(guān)注
  • 1617 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號