关于Array和Slice

关于函数返回值:

func GetNames() []string {
   var namelist [3]string
   namelist[0] = "tome"
   namelist[1] = "kate"
   namelist[2] = "tonny"

   return namelist;
   // 这里return的是Array还是Slice?
}

关于调用函数所传递的参数:

func SetNames(names []string) {
}

func Test() {
   var namelist [3]string
   namelist[0] = "tome"
   namelist[1] = "kate"
   namelist[2] = "tonny"

   SetNames(namelist)
   //在这里传给SetNames函数的namelist, 是传的Array还是Slice?
}

共 4 个回复


gihnius

关于 slice 和 array , 你这里全玩错了.

如果你想知道某个变量类型,你可以用这个: t := reflect.TypeOf(v)

# 0

gihnius

应该是我看错了你的问题。


第一个 return array
第二个参数也是 array
肯定编译不过的, 不要看上去很像就当一样的.

# 1

tongliaozhang

[]string 是 slice [3]string 是 array

1 函数定义的返回值类型和return不同 编译不过 2 函数的定义参数和传入参数类型不同 编译不过~

# 2

qkevin123

@tongliaozhang

做了一下测试,you are right !

# 3