我已经习惯了Java的String,在其中我们可以传递null而不是传递“”以获取特殊含义,例如使用默认值。在Go中,字符串是原始类型,因此我无法将nil(null)传递给需要字符串的参数。我可以使用指针类型编写函数,如下所示:func f(s *string)因此,调用者可以将该函数调用为f(nil)或者// not so eleganttemp := "hello";f(&temp) 但很遗憾,以下内容是不允许的:// elegant but disallowedf(&"hello");使参数接收字符串或nil的最佳方法是什么?
3 回答
偶然的你
TA贡献1841条经验 获得超3个赞
如果您需要处理possibble空值(becasue你谈话的可能,例如为他们提供一个数据库)的database/sql
包具有类型,如sql.NullString
和sql.NullInt64
,让您的测试,如果你已经提供一个值或不使用他们的.Valid
领域。
- 3 回答
- 0 关注
- 580 浏览
添加回答
举报
0/150
提交
取消