当前位置: 首页 > 面试题库 >

格式化Go字符串而不打印?

惠凯歌
2023-03-14
问题内容

是否有一种简单的方法可以在Go中格式化字符串而不打印字符串?

我可以:

bar := "bar"
fmt.Printf("foo: %s", bar)

但是我希望返回格式化的字符串而不是打印出来的字符串,以便我可以进一步处理它。

我也可以做类似的事情:

s := "foo: " + bar

但这在格式字符串很复杂时很难阅读,而在一个或多个部分不是字符串而必须首先转换的时候(例如,

i := 25
s := "foo: " + strconv.Itoa(i)

有没有更简单的方法可以做到这一点?


问题答案:

Sprintf是您想要的。

fmt.Sprintf("foo: %s", bar)

您还可以在“ 错误”示例中看到它在使用中,作为“ A Tour of
Go”的一部分。

return fmt.Sprintf("at %v, %s", e.When, e.What)


 类似资料:
  • 但是当格式字符串很复杂时,这就变得很难理解,当一个或多个部分不是字符串并且必须首先转换时,这就变得很麻烦,比如 有没有更简单的方法做到这一点?

  • Go对字符串格式化提供了良好的支持。下面我们看些常用的字符串格式化的例子。 package main import "fmt" import "os" type point struct { x, y int } func main() { // Go提供了几种打印格式,用来格式化一般的Go值,例如 // 下面的%v打印了一个point结构体的对象的值 p := p

  • 主要内容:指定最小输出宽度,指定对齐方式,指定小数精度我们在《 第一个Python程序——在屏幕上输出文本》中讲到过 print() 函数的用法,这只是最简单最初级的形式,print() 还有很多高级的玩法,比如格式化输出,这就是本节要讲解的内容。 熟悉C语言 printf() 函数的读者能够轻而易举学会 Python print() 函数,它们是非常类似的。 print() 函数使用以 开头的转换说明符对各种类型的数据进行格式化输出,具体请看下表。

  • Parameter Position参数位置 Type参数类型 Required必需 Default默认 Description描述 1 string Yes n/a This is what format to use. (sprintf) 使用的格式化方式 This is a way to format strings, such as decimal numbers and such. Us

  • 3.5. 格式化字符串 Python 支持格式化字符串的输出 。尽管这样可能会用到非常复杂的表达式, 但最基本的用法是将一个值插入到一个有字符串格式符 %s 的字符串中。 在 Python 中, 字符串格式化使用与 C 中 sprintf 函数一样的语法。 例 3.21. 字符串的格式化 >>> k = "uid" >>> v = "sa" >>> "%s=%s" % (k, v) 'uid=s

  • 由来 我一直对Slf4j的字符串格式化情有独钟,通过{}这种简单的占位符完成字符串的格式化。于是参考Slf4j的源码,便有了StrFormatter。 StrFormatter.format的快捷使用方式为StrUtil.format,推荐使用后者。 使用 //通常使用 String result1 = StrFormatter.format("this is {} for {}", "a", "