言語インタフェースタイプアサーション決意を行きます

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)
}
公開された103元の記事 ウォン称賛21 ビュー20000 +

おすすめ

転載: blog.csdn.net/leinminna/article/details/105163278