英文:
Why a call to a user-defined String() for user-defined type throws "not enough arguments in call to BitFlag.String"?
问题
我列出了《Go编程》一书中的代码。
我测试了它,但它没有正常工作。
错误信息:"调用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 {
...
}
为什么我会看到这个错误消息?
英文:
I list the code from the book "Programming in Go".
I test it but it didn't work well.
error: "not enough arguments in call to BitFlag.String"
Goplayground Code: http://play.golang.org/p/FG23LdS_xK
type BitFlag int
func main() {
flag := Active | Send
BitFlag.String();
}
func (flag BitFlag) String() string {
...
}
Why do I see this error message?
答案1
得分: 0
你需要在BitFlag
的实例(这里是'flag')上调用String方法,而不是在BitFlag
类型本身上调用。
flag := Active | Send
fmt.Println(strconv.Itoa(int(flag)))
fmt.Println(flag.String())
可以参考这个[kbd]play.golang.org[/kbd]的示例。
输出:
3
3(Active|Send)
英文:
You need to call String on an instance of BitFlag
(here 'flag
'), not on the BitFlag
type itself.
flag := Active | Send
fmt.Println(strconv.Itoa(int(flag)))
fmt.Println(flag.String())
See this <kbd>play.golang.org</kbd> example.
Output:
3
3(Active|Send)
通过集体智慧和协作来改善编程学习和解决问题的方式。致力于成为全球开发者共同参与的知识库,让每个人都能够通过互相帮助和分享经验来进步。
评论