为了账号安全,请及时绑定邮箱和手机立即绑定

Go中的函数冲突

Go中的函数冲突

Go
慕田峪7331174 2021-04-02 12:15:43
Golang初始化描述了一种将方法附加到Go编程语言中的任意对象的方法。例如,它们显示String了新定义ByteSize类型的方法:type ByteSize float64const (    _ = iota;   // ignore first value by assigning to blank identifier    KB ByteSize = 1<<(10*iota);    MB;    GB;    TB;    PB;    YB;)将诸如String之类的方法附加到类型的能力使得这些值可以自动格式化自身以进行打印,甚至可以将其作为常规类型的一部分。func (b ByteSize) String() string {    switch {    case b >= YB:        return fmt.Sprintf("%.2fYB", b/YB)    case b >= PB:        return fmt.Sprintf("%.2fPB", b/PB)    case b >= TB:        return fmt.Sprintf("%.2fTB", b/TB)    case b >= GB:        return fmt.Sprintf("%.2fGB", b/GB)    case b >= MB:        return fmt.Sprintf("%.2fMB", b/MB)    case b >= KB:        return fmt.Sprintf("%.2fKB", b/KB)    }    return fmt.Sprintf("%.2fB", b)}我不清楚以下内容:如果ByteSize和func (b ByteSize) String() string都是在某个包中定义的,我会导入该包,但想ByteSize通过使用自己的字符串方法编写自定义显示,Go如何知道是否调用自己的字符串方法或先前定义的字符串方法?甚至可以重新定义字符串吗?
查看完整描述

1 回答

  • 1 回答
  • 0 关注
  • 358 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信