2

これが機能する理由:

  List(
   "string", "string2"
  )

しかし、これはそうではありませんか?

  List{
   "string", "string2"
  }

コンパイル エラー:;' expected but ',' found.

しかし、apply メソッドを使用した自分のオブジェクトの場合:

object Dictionary {    
  ...    
  private[dictionary] def apply(words: List[Word]) = {
    ...
  }
}

Dictionary { // curly braces works fine
  List ( // but here, for List - I can Not use curly braces
    "hello", "hello2" 
  )
}
4

2 に答える 2

3

違いはコンマにあります。括弧を使用する場合は、コンマで区切られた引数リストのみを使用できます。

あなたはそれを見つけるでしょう

List {
    3
}

うまく動作します。

于 2013-06-18T03:49:53.067 に答える
1

ブレースサプリメントに関する正規の回答。

公式の用語集では、ブロックを副作用と結果値のカプセル化と呼んでいます。

最近、ブレースとその先のとがらないいとこについて、ML でいくつかの意見が表明されました

おそらく、括弧と波括弧をいくつかのコンテキストで交換可能であると考えるのは役に立たないでしょう.

式とブロックの観点から考える方が簡単です。この場合、関数の引数はカンマ区切りの式またはブロックのいずれかになります。

于 2013-06-18T06:25:32.710 に答える