2013-12-10 7 views

Antwort

14

Eine Typbestätigung behauptet, dass t (ein Schnittstellentyp) tatsächlich ein aType und t ein aType ist; nämlich der eine in der t Schnittstelle eingewickelt. Z.B. Wenn Sie wissen, dass Ihr var reader io.Reader tatsächlich ein *bytes.Buffer ist, können Sie var br *bytes.Buffer = reader.(*bytes.Buffer) tun.

Eine Typkonvertierung konvertiert einen (Nicht-Schnittstellen-) Typ in einen anderen, z. a var x uint8 zu und int64 wie var id int64 = int64(x). Faustformel Faustregel: Wenn Sie Ihren konkreten Typ in eine Schnittstelle einbinden müssen und Ihren konkreten Typ zurück haben möchten, verwenden Sie eine Typbestätigung (oder geben Sie einen Schalter ein). Wenn Sie einen konkreten Typ in einen anderen konvertieren müssen, verwenden Sie eine Typumwandlung.

+0

"und t wird ein aType" - Können Sie das näher ausführen? 't' ist nicht modifiziert? – nemo

+0

@nemo Ich denke, er würde 'v' sagen, nicht' t' –

+0

@LucianoQ: Nein, es ist 't' nicht' v'. @nemo: Nein "t" wird nicht durch eine Typzusicherung oder eine Typumwandlung geändert. Ich empfehle dringend die Tour of Go und die Sprachspezifikation danach. – Volker

Verwandte Themen