使用反射方法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。為了判斷乙個介面值是否儲存了乙個特定的型別,型別斷言可返回兩個值 其底...