一個很微妙的一個問題。從下面的代碼可以看出: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]
關(guān)于Go語言中數(shù)組的參數(shù)傳遞問題
富國滬深
2019-03-29 10:59:04