猿问

为什么调用用户定义类型的用户定义 String() 会抛出

我列出了“Go中编程”一书中的代码。我对其进行了测试,但效果不佳。


error: "not enough arguments in call to BitFlag.String"

Goplayground 代码:http ://play.golang.org/p/FG23LdS_xK


type BitFlag int


func main() {

    flag := Active | Send

    BitFlag.String();

}


func (flag BitFlag) String() string {

   ...

}

为什么我会看到此错误消息?


holdtom
浏览 281回答 1
1回答

慕侠2389804

您需要在BitFlag(此处为 ' flag')的实例上调用 String ,而不是在BitFlag类型本身上调用。flag := Active | Sendfmt.Println(strconv.Itoa(int(flag)))fmt.Println(flag.String())输出:33(Active|Send)
随时随地看视频慕课网APP

相关分类

Go
我要回答