如何在Go中使用带有可为空的字符串参数的函数?

我已经习惯了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的最佳方法是什么?


繁星点点滴滴
浏览 582回答 3
3回答

偶然的你

如果您需要处理possibble空值(becasue你谈话的可能,例如为他们提供一个数据库)的database/sql包具有类型,如sql.NullString和sql.NullInt64,让您的测试,如果你已经提供一个值或不使用他们的.Valid领域。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Go