回答

收藏

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

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

在不打印字符串的情况下,是否有一个简单的方法可以 Go 中格式字符串?
. J6 ^4 l+ |- n  h" u我可以:6 ?) K$ x! q: ?5 E8 |/ v
    bar := "bar"fmt.Printf("foo: %s",bar)' B9 Y5 k5 K% S" y' X! F
但我希望返回格式字符串而不是打印,这样我就可以进一步操作它。
$ v5 e7 m# d/ u- z. {+ I我也可以做类似的事情:
$ W. c* z0 m) X& }! B
    s := "foo: "   bar
    ) B4 c% B& D) U# Z9 L
然而,当格式字符串非常复杂时,它变得难以阅读,当一个或多个部分不是字符串并且必须首先转换时,会变得非常麻烦,例如* b* ~  M& a5 I# L: a& Q
    i := 25s := "foo: "   strconv.Itoa(i)
    : X* E& ~8 J& Z, `( }/ g7 @
这样做有没有更简单的方法?
" X9 y6 j5 z( \4 d                                                                ' @2 h- N! Y- w" P7 N$ N
    解决方案:                                                                - r, B/ Z8 k" R% F$ m
                                                                Sprintf正是您要找的。
' ~" O. r: _$ n- V0 \) L5 A! J例子
: c6 m& w' O7 D# x, ]+ K
    fmt.Sprintf("foo: %s",bar)0 |' ^) d3 i# n! q' \8 V
你也可以A Tour of Go”的Errors 在示例中看到它的使用。0 E& @3 s$ Y0 Q' v9 ~" E# M
    return fmt.Sprintf("at %v,%s",e.When,e.What)3 w6 O2 E" b  |
分享到:
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则