1 26 Go介面的nil判斷

2022-09-27 10:51:12 字數 905 閱讀 2572

**示例

package main

​import "fmt"​/*

定義乙個介面

*/type student inte***ce ​/*

定義乙個型別

*/type stu struct ​/*

該型別實現showinfor函式

*/func (s *stu) showinfor() string ​/*

定義乙個函式,返回該介面型別

*/func getstudents() student

​func main() else

​fmt.println("**********帶有型別的nil賦值給介面**********")

// 呼叫getstudents方法

if nil == getstudents() else

}

輸出結果:

getstudent()雖然執行:賦值nil操作,但是**執行結果為:

fmt.println("收到的資訊是:not nil")

原因:

賦值nil操作為對應的datatype並非為nil

處理辦法:

修改方法的返回值。在方法內直接返回nil

/*

定義乙個函式,返回該介面型別

*/func getstudents() student

return s

}

1 26 Go語言實現日誌系統

設計思路 宣告日誌寫入介面 後面的型別都是通過該介面的方法實現日誌寫入 宣告日誌寫入介面,後面的型別都是通過該介面的方法實現日誌寫入 type logwriter inte ce error 定義命令列寫入器型別 定義乙個命令列寫入器型別 要通過日誌寫入介面的方法進行日誌寫入 type consol...

Go語言判斷介面的具體型別並進行型別轉換

使用反射方法reflect.typeof v inte ce string 得到以字串表達的具體型別。使用fmt.printf t v 列印出具體型別。或者使用fmt.sprintf t v 返回乙個字串。自定義乙個函式judgetype v inte ce string來返回具體型別。judget...

go語言 介面的思考(一)

在 學習go語言 中,有乙個例子,說得是怎樣做乙個通用的介面來實現給數字,字串來排序。第一種思路 1.定義乙個函式,可以接收任意型別做為入參,然後 在函式內,根據入參來判斷是那乙個型別 func sort i inte ce 在呼叫時,sort int 我們傳入了乙個陣列,很不幸,go不能 隱式 轉...