回答

收藏

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

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

在不打印字符串的情况下,是否有一个简单的方法可以 Go 中格式字符串?3 `+ e3 E4 J7 O1 \
我可以:2 {5 q. {6 p6 T
    bar := "bar"fmt.Printf("foo: %s",bar)8 i$ |. j& `- \; {' Y
但我希望返回格式字符串而不是打印,这样我就可以进一步操作它。, s& D& ~7 O$ F) a' j5 O; ?+ ?' i. o' c
我也可以做类似的事情:
  J1 C9 j9 K' a8 n1 a
    s := "foo: "   bar
    8 c3 k& B8 E# j7 i/ ]  k
然而,当格式字符串非常复杂时,它变得难以阅读,当一个或多个部分不是字符串并且必须首先转换时,会变得非常麻烦,例如7 y7 V' X( Z0 O4 r: w! T
    i := 25s := "foo: "   strconv.Itoa(i)
    ( j: |( i2 {% P# l, X# k
这样做有没有更简单的方法?
+ C; E6 }  j/ ~) l# v9 h  `+ i7 P& H                                                                + ]2 d! L+ s1 N, q' y
    解决方案:                                                               
! l2 z) c* _* Z9 j' i                                                                Sprintf正是您要找的。. S* ]( `! T/ \8 C- m# D
例子
0 {! ]. O0 A& N! D; M/ `/ D# F
    fmt.Sprintf("foo: %s",bar)1 }$ s- M0 e; Z! y3 [( p( @0 {6 O
你也可以A Tour of Go”的Errors 在示例中看到它的使用。
. w( z) L) M# V0 c
    return fmt.Sprintf("at %v,%s",e.When,e.What)
    3 S7 d& X4 @5 h; U8 c) A) p2 M
分享到:
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则