Go中字符串文字中的变量捕获?

在 Ruby 中,我可以直接在字符串文本中捕获变量,例如bash.


SRCDIR  =   "aaa"

DSTDIR  =   "bbb"


puts "SRCDIR = #{SRCDIR}"

puts "DSTDIR = #{DSTDIR}"

这是一个简单而微小的功能,但让它感觉像一个 shell 脚本非常好。如果我必须编写一个复杂的 shell 脚本,这会很有帮助,因为这消除了替换、连接和格式表达式的需要。


Go有这样的东西吗?如果有,如何使用?


三国纷争
浏览 280回答 3
3回答

温温酱

不是没有格式化字符串;通常的方法是使用fmt.Printf或fmt.Sprintf:srcdir := "aaa"dstdir := "bbb"// separated out Sprintf and Println for clarityfmt.Println(fmt.Sprintf("SRCDIR = %s", srcdir))fmt.Println(fmt.Sprintf("DSTDIR = %s", dstdir))// could be shortened if you're just printing themfmt.Printf("SRCDIR = %s\n", srcdir)fmt.Printf("DSTDIR = %s\n", dstdir)

波斯汪

韦斯说的。我应该补充一点,如果您使用自定义类型,您可以定义一个带有签名的方法String() string(本质上使它们满足fmt.Stringer接口),然后将这些类型的实例直接传递给fmt需要字符串的包函数,比如fmt.Println(). 可以在“Effective Go”中找到对此的简单介绍。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Go