我已经习惯了Java的String,在其中我们可以传递null而不是传递“”以获取特殊含义,例如使用默认值。
在Go中,字符串是原始类型,因此我无法将nil(null)传递给需要字符串的参数。
我可以使用指针类型编写函数,如下所示:
func f(s *string)
因此,调用者可以将该函数调用为
f(nil)
或者
// not so elegant
temp := "hello";
f(&temp)
但很遗憾,以下内容是不允许的:
// elegant but disallowed
f(&"hello");
使参数接收字符串或nil的最佳方法是什么?
偶然的你
相关分类