猿问

Go 方法参数和 float64 数组给出意外错误

编译以下代码时...


package camera


type camera struct {

    position [3]float64

    viewWidth int

    viewHeight int

}


func (c camera) SwitchToCartesianThreeSpace(x, y int) [3]float64 { // LINE 9

    var x3 float64 = 0 // view is set to the origin

    var y3 float64 = float64(x) - (float64(c.viewWidth) / 2)

    var z3 float64 = float64(-y) + (float64(c.viewHeight) / 2)

    result := [3]float64{x3, y3, z3}                               // LINE 13

    return result

}

...出现以下错误。


camera/camera.go:9: undefined: x

camera/camera.go:9: undefined: y

camera/camera.go:11: undefined: x

camera/camera.go:12: undefined: y

camera/camera.go:13: cannot use x3 (type float64) as type [3]float64 in array element

camera/camera.go:13: cannot use y3 (type float64) as type [3]float64 in array element

camera/camera.go:13: cannot use z3 (type float64) as type [3]float64 in array element

到目前为止,我已经编写了相当多的 Go 代码,但不明白为什么会出现第 9 行的错误或第 13 行的错误!有谁能解释一下吗?


繁星淼淼
浏览 369回答 1
1回答

梦里花落0921

在 playgroud 中隔离,它编译得很好,并具有预期的输出:c := camera{}res := c.SwitchToCartesianThreeSpace(2, 3)// res is [0 2 -3]您需要尝试只camera.go包含该代码,或检查文件如何适合您当前的工作区。camera.go
随时随地看视频慕课网APP

相关分类

Go
我要回答