我来自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类型
正如其他人在评论中提到的那样,您可能希望使用切片而不是数组。切片已经通过引用传递,因此无需指定指针。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] 删除。
我来说两句