在 Ruby 中,我可以直接在字符串文本中捕获变量,例如bash.SRCDIR = "aaa"DSTDIR = "bbb"puts "SRCDIR = #{SRCDIR}"puts "DSTDIR = #{DSTDIR}"这是一个简单而微小的功能,但让它感觉像一个 shell 脚本非常好。如果我必须编写一个复杂的 shell 脚本,这会很有帮助,因为这消除了替换、连接和格式表达式的需要。Go有这样的东西吗?如果有,如何使用?
3 回答
温温酱
TA贡献1752条经验 获得超4个赞
不是没有格式化字符串;通常的方法是使用fmt.Printf或fmt.Sprintf:
srcdir := "aaa"
dstdir := "bbb"
// separated out Sprintf and Println for clarity
fmt.Println(fmt.Sprintf("SRCDIR = %s", srcdir))
fmt.Println(fmt.Sprintf("DSTDIR = %s", dstdir))
// could be shortened if you're just printing them
fmt.Printf("SRCDIR = %s\n", srcdir)
fmt.Printf("DSTDIR = %s\n", dstdir)
波斯汪
TA贡献1811条经验 获得超4个赞
韦斯说的。我应该补充一点,如果您使用自定义类型,您可以定义一个带有签名的方法String() string
(本质上使它们满足fmt.Stringer
接口),然后将这些类型的实例直接传递给fmt
需要字符串的包函数,比如fmt.Println()
. 可以在“Effective Go”中找到对此的简单介绍。
- 3 回答
- 0 关注
- 279 浏览
添加回答
举报
0/150
提交
取消