登录
首页 >  Golang >  Go问答

输出 Golang 中类型的字符串定义

来源:stackoverflow

时间:2024-03-11 14:18:24 398浏览 收藏

你在学习Golang相关的知识吗?本文《输出 Golang 中类型的字符串定义》,主要介绍的内容就涉及到,如果你想提升自己的开发能力,就不要错过这篇文章,大家要知道编程理论基础和实战操作都是不可或缺的哦!

问题内容

我想知道是否有办法通过 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)"

解决方案


您需要实现接口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 Playground

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

好了,本文到此结束,带大家了解了《输出 Golang 中类型的字符串定义》,希望本文对你有所帮助!关注golang学习网公众号,给大家分享更多Golang知识!

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