gpt4 book ai didi

go - 为什么 GoLang 方法给出编译错误?

转载 作者:数据小太阳 更新时间:2023-10-29 03:43:55 24 4
gpt4 key购买 nike

我正在尝试 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())
}

最佳答案

您将 sq 声明为函数,而不是方法。如果你想将 sq 附加到 MyFloat,你应该像这样声明它:

func (f MyFloat) sq() string {
return fmt.Sprintln("The square is: ", f*f)
}

这样你就可以执行a.sq()

关于go - 为什么 GoLang 方法给出编译错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45214857/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com