2012-03-19 1 views
4

可能な重複する場合:
“new” keyword in Scala新たに必要とScalaでは

アイブ氏はScalaで特定のインスタンスを作成すると、あなたはnewを使用してオフに残すことができることに気づきました。開発者がいつ使用する必要がありますかnew?そして、なぜあなたはそれを使用するのを逃すことを許可するいくつかのオブジェクトはありますか?

おかげ

リスト( "これは"、 "ある"、 "A"、 "リスト")は、これらの4つの文字列のリストを作成します。 ( "foo" - > 45、 "bar" - > 76)はString to Intのマップを作成します。新しい は必要なく、clumsyヘルパークラスは作成されません。 hereから撮影

..

答えて

10

一般的にはScalaのコレクションクラスはapplyメソッドを使用して、そのコンパニオンオブジェクトでファクトリメソッドを定義します。 List("this","is","a","list")Map("foo" -> 45, "bar" ->76)は、それらのapplyメソッドを呼び出すための構文的な砂糖です。この慣例を使用することは、かなり慣用的なスカラーです。

さらに、case class C(i: Int)を定義した場合は、C(i)と呼ばれるファクトリC.apply(i: Int)も定義されています。だから、新しいが必要です。

これ以外にも、オブジェクトを作成するにはnewが必要です。

関連する問題