在 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 關注
- 306 瀏覽
添加回答
舉報
0/150
提交
取消