一个很微妙的一个问题。从下面的代码可以看出:1、类型为“[5]int”的数组在作为参数时,其实作为值来传递的。2、类型为“[]int”的数组在作为参数时,其实作为引用来传递的。这是由于“[]int”是一个接口么?还是说以“[]int”定义的就是一个slice?待确定。代码片段(2):[代码]数组作为参数时的值传递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)}运行结果:Inmodify(),arrayvalues:[102345]Inmain(),arrayvalues:[12345][代码]数组作为参数时的引用传递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)}运行结果:Inmodify(),arrayvalues:[102345]Inmain(),arrayvalues:[102345]
泛舟湖上清波郎朗
慕虎7371278
相关分类