回答

收藏

在不打印的情况下格式化 Go 字符串?

技术问答 技术问答 234 人阅读 | 0 人回复 | 2023-09-12

在不打印字符串的情况下,是否有一个简单的方法可以 Go 中格式字符串?
6 w" a, o9 b- G/ u* u5 P我可以:
; H  g) d9 s. M% d* U* n( {
    bar := "bar"fmt.Printf("foo: %s",bar)4 z5 f/ ~8 f$ g. v
但我希望返回格式字符串而不是打印,这样我就可以进一步操作它。
# P# z, v+ z1 ~4 c; p我也可以做类似的事情:
0 a2 @! B3 E, P  N
    s := "foo: "   bar
    ' d  d1 c+ u" S! O* m
然而,当格式字符串非常复杂时,它变得难以阅读,当一个或多个部分不是字符串并且必须首先转换时,会变得非常麻烦,例如
* S6 }+ z# `1 d
    i := 25s := "foo: "   strconv.Itoa(i)
    ; V/ [3 E) N1 Y! ^
这样做有没有更简单的方法?* ~  ?( @( v) ]" u
                                                                % j& a7 {0 m( d  f
    解决方案:                                                                : K" {: W/ \9 K$ I$ y! b7 _
                                                                Sprintf正是您要找的。
" E/ M* @1 q# p6 |3 T+ L$ D例子
# r6 w0 q: z6 W- j- Z8 R
    fmt.Sprintf("foo: %s",bar)
    " H* G3 Y% ]7 D' y
你也可以A Tour of Go”的Errors 在示例中看到它的使用。
% e8 D0 _! Q6 x( M/ E0 J* h) {
    return fmt.Sprintf("at %v,%s",e.When,e.What)
    : Q; b4 S5 B: C
分享到:
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则