为什么会这样:
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"
)
}
答案 0 :(得分:3)
区别在于逗号 - 使用括号时,您只能使用逗号分隔的参数列表。
你会发现
List {
3
}
工作正常。
答案 1 :(得分:1)
Canonical answer on braces和a supplement。
The official glossary有助于调用块封装副作用和结果值。
最近在ML上发表了few opinions关于牙箍及其尖尖表兄弟的信息。
在某些情况下,将parens和braces视为某种可互换的方式也许是无益的。
使用exprs和块更容易思考,在这种情况下,函数args可以是逗号分隔的exprs或块。