我正在尝试GoLang中的方法。我是新手,所以如果我问愚蠢的问题,请纠正我。 link表示我们可以将方法编写为普通函数。但是当我尝试使用代码时,它会给我编译错误
a.sq undefined (type MyFloat has no field or method sq)
以下代码中的注释行正如预期的那样工作。 请帮我。以下是我的代码:
package main
import (
"fmt"
)
type MyFloat float64
func sq (f MyFloat) string {
return fmt.Sprintln("The square is: ", f*f)
}
/*func (f MyFloat) sq() string {
return fmt.Sprintln("The square is: ", f*f)
}*/
func main() {
a := MyFloat(2.0)
fmt.Println(a.sq())
}
答案 0 :(得分:2)
您将sq
声明为函数,而不是方法。如果您要将sq
附加到MyFloat
,则应将其声明为:
func (f MyFloat) sq() string {
return fmt.Sprintln("The square is: ", f*f)
}
这样您就可以a.sq()
。