中括弧
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