我正在尝试使用Google的Go语言,并且遇到了C语言中相当基本的东西,但到目前为止我看过的文档中似乎都没有涉及到
当我将指向某个切片的指针传递给函数时,我认为我们可以通过以下方式来访问它:
func conv(x []int, xlen int, h []int, hlen int, y *[]int)
for i := 0; i<xlen; i++ {
for j := 0; j<hlen; j++ {
*y[i+j] += x[i]*h[j]
}
}
}
但是Go编译器不喜欢这样:
sean@spray:~/dev$ 8g broke.go
broke.go:8: invalid operation: y[i + j] (index of type *[]int)
足够公平-这只是一个猜测。我有一个相当简单的解决方法:
func conv(x []int, xlen int, h []int, hlen int, y_ *[]int) {
y := *y_
for i := 0; i<xlen; i++ {
for j := 0; j<hlen; j++ {
y[i+j] += x[i]*h[j]
}
}
}
但是,肯定有更好的方法。令人讨厌的是,在Go上搜索信息不是很有用,因为大多数搜索字词都会出现各种C / C ++ /无关的结果。
四季花海
潇潇雨雨
相关分类