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

在 Golang 中为类型定义字符串输出

在 Golang 中为类型定义字符串输出

Go
海绵宝宝撒 2023-05-04 16:54:26
我想知道是否有办法fmt指定为特定类型输出字符串的方式。例如,我有一个token包含关于令牌的一堆信息的结构,比如令牌类型(这是一个 int,但为了清楚起见,如果我可以将令牌类型的名称输出为字符串会更有意义) .那么当我打印特定类型的变量时,是否有一种直接的方法来指定/实现这种类型的字符串输出?如果这真的没有意义,Rust 有一个很好的方式(来自他们的文档)use std::fmt;struct Point {    x: i32,    y: i32,}impl fmt::Display for Point {    fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {        write!(f, "({}, {})", self.x, self.y)    }}let origin = Point { x: 0, y: 0 };println!("The origin is: {}", origin); // prints "The origin is: (0, 0)"
查看完整描述

1 回答

?
月关宝盒

TA贡献1772条经验 获得超5个赞

您需要实现接口Stringer,如下所示:

import "fmt"


type Point struct {

    x int

    y int

}


func (p Point) String() string {

    return fmt.Sprintf("(%d, %d)", p.x, p.y)

}


func main() {

    fmt.Println(Point{1, 2})

}

去游乐场

在 Go 中,您无需指定类型实现哪些接口,您只需实现所需的方法。


查看完整回答
反对 回复 2023-05-04
  • 1 回答
  • 0 关注
  • 102 浏览
慕课专栏
更多

添加回答

举报

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