我习惯了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