在golang中按引用传递数组

iammehrabalam:

我来自C背景,以C样式传递数组会导致错误。

package main
import "fmt"

func f(a *int){
  fmt.Println(a[1])
}

func main(){
  var a [100]int
  a[1]=100
  f(a)
}

错误 :: 无法在f的参数中使用(type [100] int)作为* int类型

jxstanford:

正如其他人在评论中提到的那样,您可能希望使用切片而不是数组。切片已经通过引用传递,因此无需指定指针。make下面语句创建一个整数切片(由数组支持)。在下面的代码中,为了满足您分配给索引1的目标,我给了它2个长度和100个容量。

import (
    "fmt"
)

func f(a []int) {
    fmt.Println(a[1])
}

func main() {
    a := make([]int, 2, 100)
    a[1] = 100
    f(a)
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章