中括弧
if の条件の部分は小括弧を中括弧に出来ないっぽい。
while も出来ないっぽい。
for とかは出来るのに。
逆に match は中括弧じゃないと駄目みたい。
scala> { for { i <- 1 to 3 } yield (i) } foreach print 123 scala> def inc(a: Int) = a + 1 inc: (a: Int)Int scala> inc( | 3 | ) res1: Int = 4 scala> inc { | 3 | } res2: Int = 4 scala> 1.to { | 2 + 3 | } foreach print 12345 scala> if (2 < 3) (2 + 2) else (4 - 5) res9: Int = 4 scala> if { 2 < 3 } (2 + 2) else (4 - 5) <console>:1: error: '(' expected but '{' found. if { 2 < 3 } (2 + 2) else (4 - 5) ^ scala> var i = 0 i: Int = 0 scala> while (i < 6) (i = i + 1) scala> while { i < 6 } (i = i + 1) <console>:1: error: '(' expected but '{' found. while { i < 6 } (i = i + 1) ^ scala> i match ( <console>:1: error: '{' expected but '(' found. i match ( ^
関数/メソッド呼び出しと for が特殊なんだな、きっと。
優先度の括弧にも中括弧が使えるっぽい。
scala> { 1 + 2 } * 3 res0: Int = 9 scala> {2 * (3 + 4) + 5} * 6 res1: Int = 114 scala> (2 * {3 + 4} + 5) * 6 res2: Int = 114