我想知道是否有辦法fmt指定為特定類型輸出字符串的方式。例如,我有一個token包含關(guān)于令牌的一堆信息的結(jié)構(gòu),比如令牌類型(這是一個 int,但為了清楚起見,如果我可以將令牌類型的名稱輸出為字符串會更有意義) .那么當我打印特定類型的變量時,是否有一種直接的方法來指定/實現(xiàn)這種類型的字符串輸出?如果這真的沒有意義,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 回答

月關(guān)寶盒
TA貢獻1772條經(jīng)驗 獲得超5個贊
您需要實現(xiàn)接口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 中,您無需指定類型實現(xiàn)哪些接口,您只需實現(xiàn)所需的方法。
- 1 回答
- 0 關(guān)注
- 153 瀏覽
添加回答
舉報
0/150
提交
取消