golang判斷指針是否為空的方法:
創(chuàng)新互聯(lián)是專業(yè)的甘南網(wǎng)站建設(shè)公司,甘南接單;提供成都網(wǎng)站設(shè)計(jì)、網(wǎng)站建設(shè)、外貿(mào)網(wǎng)站建設(shè),網(wǎng)頁設(shè)計(jì),網(wǎng)站設(shè)計(jì),建網(wǎng)站,PHP網(wǎng)站建設(shè)等專業(yè)做網(wǎng)站服務(wù);采用PHP框架,可快速的進(jìn)行甘南網(wǎng)站開發(fā)網(wǎng)頁制作和功能擴(kuò)展;專業(yè)做搜索引擎喜愛的網(wǎng)站,專業(yè)的做網(wǎng)站團(tuán)隊(duì),希望更多企業(yè)前來合作!
1、知道類型的情況下,自然是可以使用類型斷言后判空。如ai, ok := i.(*int),之后判斷ai == nil。
2、不知道是何種類型的指針,就只好借助反射了vi := reflect.ValueOf(i),后使用vi.IsNil()來判斷。但如果i里放到不是一個指針,調(diào)用IsNil會出異常,則可能要寫一個這樣的函數(shù)來判空
func IsNil(i interface{}) bool { defer func() { recover() }() vi := reflect.ValueOf(i) return vi.IsNil() }
但有這樣強(qiáng)加一個defer的recover確實(shí)不好看,于是借助類型判斷變成這樣
func IsNil(i interface{}) bool { vi := reflect.ValueOf(i) if vi.Kind() == reflect.Ptr { return vi.IsNil() } return false }
以上就是golang怎么判斷指針是否為空的詳細(xì)內(nèi)容,更多請關(guān)注創(chuàng)新互聯(lián)其它相關(guān)文章!