1型アサーション
執筆:X(T)..
X:アサーションの種類:インターフェイスタイプ、Tを主張する必要があります。
以下の場合:Tが満足するxはポートを決定するクエリは、インターフェースのT xを含んでいます。
2決定する変数実装しているかどうか、指定インターフェース
例:
if err,ok :=x.(error); ok {
return err.Error()
}
コンバージョンの3種類
定義:私たちは、このインタフェース変数を逆にしたい場合は⾥⾯実際のストレージを変換するので実行される⽅以下を使用して記録することができるオブジェクトの種類を知っています
var t int
var x interface{}
x = t
y, ok = x.(int) //转成int,带检查
型を取得します4
func justify(items ...interface{}) {
for index, v := range items {
switch v.(type) {
case int:
fmt.Printf("第 %d 个参数 is int\n", index)
case int32:
fmt.Printf("第 %d 个参数 is int32\n", index)
case float32:
fmt.Printf("第 %d 个参数 is float32\n", index)
}
}
}
func main(){
var a int
var b float32
var c int32
justify(a, b, c)
}