我習慣了Java的String,我們可以傳遞null而不是「」來表示特殊的含義,比如使用默認值。如何在Go中有一個帶有空字符串參數的函數?
在Go中,string是一個原始類型,所以我無法將nil(null)傳遞給需要字符串的參數。
我可以使用指針類型,像這樣寫的函數:
func f(s *string)
所以調用者可以調用該函數既可以作爲
f(nil)
或
// not so elegant
temp := "hello";
f(&temp)
但以下是遺憾的是不允許:
// elegant but disallowed
f(&"hello");
讓參數接收字符串或零的最佳方法是什麼?
我相信你需要放手Java,並習慣Go方式。爲什麼你需要傳遞一個零而不是一個字符串?你想達到什麼目的? PS。你也可以使用fmt。Printf(* new(string)) - 字符串類型爲'0' – 2012-08-17 14:18:46