在你的例子中,沒有什麼真正的區別,因爲你是Sprintf,只是簡化了字符串。這確實是可以通過使用'+'運算符更容易解決的問題。
以下面的例子,你想打印一個清晰的錯誤信息,比如「無法找到ID爲'42'的產品」。這是怎麼看你的底部方法?
productID := 42;
myString := "Product with ID '" + productID + "' could not be found."
這會給出一個錯誤(類型不匹配的字符串和INT),因爲Go沒有對串連不同類型的支持在一起。
所以你必須首先將類型轉換爲字符串。
productID := 42
myString := "Product with ID '" + strconv.Itoa(productID) + "' could not be found."
而且,對於字符串以外的每種數據類型,您都必須執行此操作。
Go中的fmt
包以及幾乎任何其他語言的類似格式化包都可以幫助您完成轉換並保持字符串清除大量「+」運算符,從而解決此問題。
下面是例子會是什麼樣子使用fmt
product := 42
myString := fmt.Sprintf("Product with ID '%d' could not be found.", product)
這裏%d
爲「打印參數爲數字」格式動詞。請參閱https://golang.org/pkg/fmt/#hdr-Printing打印其他類型的各種其他方式。
與連接fmt
相比,允許您以清晰的方式編寫字符串,從變量中分離模板/文本。而且,它簡化了字符串以外的打印數據類型。
'fmt.Sprint(1,time.Now())'? – zerkms