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

2021-10-01 01:51:24 字數 776 閱讀 1160

使用反射方法reflect.typeof(v inte***ce{}).string()得到以字串表達的具體型別。

使用fmt.printf("%t", v)列印出具體型別。或者使用fmt.sprintf("%t", v)返回乙個字串。

自定義乙個函式judgetype(v inte***ce{}) string來返回具體型別。

judgetype()函式如下。

func judgetype(v inte***ce{}) string 

}

先對其型別進行判斷,再用型別斷言進行轉換。

//獲取到具體的型別,可能是string型別或者float64

//其中dataquery.start 和 dataquery.end 都是inte***ce{}型別

start := reflect.typeof(dataquery.start).string()

end := reflect.typeof(dataquery.end).string()

var starttime float64

var endtime float64

if start == "string" else if start == "float64"

if end == "string" else if end =="float64"

1 26 Go介面的nil判斷

示例 package main import fmt 定義乙個介面 type student inte ce 定義乙個型別 type stu struct 該型別實現showinfor函式 func s stu showinfor string 定義乙個函式,返回該介面型別 func getstud...

go語言 介面的思考(一)

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

go 型別斷言 (57)介面的型別斷言

go提供了乙個方法,用來判斷介面的底層值是什麼型別 型別斷言提供了訪問介面值底層具體值的方式。t i.t 該語句斷言介面值i儲存了具體型別t,並將其底層型別為t的值賦予變數t。若i並未儲存t型別的值,該語句就會觸發乙個panic。為了判斷乙個介面值是否儲存了乙個特定的型別,型別斷言可返回兩個值 其底...