私はこの変数宣言var _ PropertyLoadSaver = (*Doubler)(nil)
を見つけました。その目的は何か不思議です。それは何も初期化していないように見えるし、空の識別子を使用するので、あなたはそれにアクセスすることはできませんね。仕様:変数割り当ての空白の識別子の目的は何ですか?
5
A
答えて
8
*Doubler
タイプがPropertyLoadSaver
インターフェイスを満たすコンパイルアサーションです。
*Doubler
タイプがインタフェースをsatisifyていない場合は、コンパイルのようなエラーで終了します:それはどのように動作するか
prog.go:21: cannot use (*Doubler)(nil) (type *Doubler) as type PropertyLoadSaver in assignment:
*Doubler does not implement PropertyLoadSaver (missing Save method)
がここにあります。コードvar _ PropertyLoadSaver
は、タイプがPropertyLoadSaver
の名前のない変数を宣言します。式(*Doubler)(nil)
は、タイプ*Doubler
の値に評価されます。 *Doubler
は、がPropertyLoadSaver
インターフェイスを実装する場合にのみタイプProperytLoadSaver
の変数に割り当てることができます。
ブランクの識別子_
が使用されます。これは、変数をパッケージの別の場所で参照する必要がないためです。
var assertStarDoublerIsPropertyLoadSaver PropertyLoadSaver = (*Doubler)(nil)
関連する問題
- 1. 識別子はECMAScript仕様2017
- 2. TransactionSynchronizationRegistryの目的は何ですか? JTA仕様によれば
- 3. x86 I/Oポート割り当ての仕様はありますか?
- 4. 割り当て言葉固有の番号識別子
- 5. モデルインスタンス変数のチェック方法は、RSpecコントローラの仕様で割り当てられています
- 6. Perlの$ VERSION変数の本当の目的は何ですか?
- 7. @ idプロパティにカスタム識別子を割り当てます。
- 8. 変数を次のように割り当てる目的は何ですか:$ x = $ x = "something"?
- 9. XMLとUnicodeの仕様:正当な文字は何ですか?
- 10. 親変数から子変数への子クラスのインスタンスの割り当て
- 11. アクセシビリティ識別子をMKMapViewオブジェクトに割り当てる
- 12. プロパティの割り当てと変数の割り当て:標準は何ですか?
- 13. C++の静的グローバル識別子と静的グローバル識別子の違いは何ですか?
- 14. 動的に割り当てられたメンバー変数。ポイントは何ですか?
- 15. JMeterの別の変数に変数を割り当てる
- 16. 引数変数の再割り当てのポイントは何ですか?
- 17. ハンドルバーテンプレートから使用される識別子の空白
- 18. Motion JPEGの仕様は何ですか?
- 19. 識別子の空白を許可する言語はどれですか?
- 20. なぜGoで空白の識別子を使用するのですか?
- 21. RPM仕様ファイル - 仕様ファイル変数を動的に取り込むことは可能ですか
- 22. 割り当て空の文字列変数がnil(三項演算子)
- 23. iPhone:インスタンス変数の再割り当て=割り当て解除ですか?
- 24. 変数を割り当てる際のアンパサンドの意味は何ですか? (Java)
- 25. 変数に割り当てられたJavaの動的変数
- 26. ここでオブジェクト変数の割り当てはどのような目的ですか?
- 27. 電子メール仕様の何が問題ですか?
- 28. 変数の割り当て、解放、割り当て
- 29. 静的変数を非静的変数に割り当てる
- 30. 割り当て時のビットシフトは変数
仕様を参照することはできますか? https://golang.org/ref/spec –
@Theuserwithnohatそれは仕様に含まれていません。それは非公式の大会です。 – Endophage
@Karrot Kake今、私はそれがどのように機能するのか理解しています。それは一種のトリックです。空白の識別子が何らかの形で使われていないので、私はそれがゴミを生産しないと思います。オフトピック: ''(* Doubler)(nil) ''は素晴らしいです。私もこれに慣れていませんでした。 –