私はScalaのコードに次のように発生しました:まさにval a = new A; import a._
はこのインポートはScalaではどういう意味ですか?
class MyClass { ... val a = new A; import a._ }
何を意味するのでしょうか?
私はScalaのコードに次のように発生しました:まさにval a = new A; import a._
はこのインポートはScalaではどういう意味ですか?
class MyClass { ... val a = new A; import a._ }
何を意味するのでしょうか?
オブジェクトのメソッドと変数をインポートします。だからa.foo()
に電話したい場合は、代わりにfoo()
に電話をかけることができます。
これは、a
というオブジェクトのA
タイプのすべてのメソッドと変数が、a
を明示的に指定することなくこのブロック(スコープ)で使用できるようになりました。 A
がbar()
メソッドを持っているのであれば、あなたは今言うことができる:
bar()
代わりの
a.bar()
だけimport
が定義されている範囲内で
は、あなたが精通している必要があり何かでこれを説明してみましょう:
println("Hello world")
の質問は:なぜその仕事をしますか? apply
メソッドを持つprintln
というオブジェクトはありません。これは、そのようなコードの通常の説明です。まあ、それが起こるとして、上記のコードは実際にこれをやっている。言い換えれば
Predef.println("Hello world")
を、println
はオブジェクトscala.Predef
上の方法です。だから、あなたはどのようにそれを上のように使うことができますか?さて、このように:
が安定した基準の内容をインポートする(すなわち、ないvar
またはdef
)reference.
でそれらをプレフィックスすることなく、そのメソッドを利用できるようになります。
またscala.Predef
内で定義暗黙の変換が同様に利用可能にする方法であり、その中に定義されている任意の暗黙が利用可能に - Scalaはこの順序で(java.lang
、scala
とscala.Predef
の内容をインポートするので、後者のオーバーライドそれ以前のもの)。
+1あなたが_stableリファレンス_ –