登录
首页 >  Golang >  Go问答

在更改 String 方法类型之前如何打印方法类型

来源:stackoverflow

时间:2024-03-11 15:03:25 260浏览 收藏

珍惜时间,勤奋学习!今天给大家带来《在更改 String 方法类型之前如何打印方法类型》,正文内容主要涉及到等等,如果你正在学习Golang,或者是对Golang有疑问,欢迎大家关注我!后面我会持续更新相关内容的,希望都能帮到正在学习的大家!

问题内容

在更改字符串方法之前,我无法在类型的 string 方法中调用 print,该类型在该类型的 string 方法中具有 string 方法:

type book struct{
  id int
  r relateF
  //Or can be delare as r relateF
}
type relateF struct{
  handle int
  grade float64
  name string
}
func(b book) String() string{
  fmt.Println(b)//<=I want to print it before change String method
  return fmt.Sprintf(b.r.name)
}
func main(){
  b1:= book{456,relateF{5,48.2,"History of the world"}}
  fmt.Println(b1)
}

它形成一个循环


解决方案


一种方法是声明一个具有完全相同结构的新临时类型 book,然后将 book 实例转换为这个新类型。

func (b book) String() string {
    type temp book       // same structure but no methods
    fmt.Println(temp(b)) // convert book to temp
    return fmt.Sprintf(b.r.name)
}

https://play.golang.com/p/3ebFhptJLxj

今天关于《在更改 String 方法类型之前如何打印方法类型》的内容介绍就到此结束,如果有什么疑问或者建议,可以在golang学习网公众号下多多回复交流;文中若有不正之处,也希望回复留言以告知!

声明:本文转载于:stackoverflow 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>