我已經習慣了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 關注
- 612 瀏覽
添加回答
舉報
0/150
提交
取消