2013-12-10 25 views

答えて

14

タイプアサーションは、t(インターフェイスタイプ)は実際にはaTypeであり、taTypeであると主張します。即ち、tインターフェースで包まれたものである。例えば。 var reader io.Readerが実際に*bytes.Bufferであることがわかっている場合は、var br *bytes.Buffer = reader.(*bytes.Buffer)とすることができます。

タイプ変換は、1つの(非インターフェイス)タイプを別の(非インターフェイス)タイプに変換します。 var x uint8〜int64はvar id int64 = int64(x)です。

親指のルール:具体的なタイプをインターフェースにラップし、具体的なタイプのバックにタイプアサーション(またはタイプスイッチ)を使用する必要がある場合。 1つの具体的な型を他の具体的な型に変換する必要がある場合は、型変換を使用します。

+0

"とtはaTypeになります" - それについて詳しく説明できますか? 't'は変更されていませんか? – nemo

+0

@nemo私は彼が 't'ではなく' v'と言うと思います。 –

+0

@LucianoQ:いいえ、 't'は' v'ではありません。 @nemo: 't'は型アサーションや型変換によって変更されません。私は、Tour of Goとその後の言語仕様を強くお勧めします。 – Volker

関連する問題