したらしいので、早速試してみることに。
クラス:
class Point1(val x: Int, val y: Int) case class Point2(x: Int, y: Int) class Point3(var x: Int, var y: Int) { def aMethod { println("Point3") } }
trait:
trait Hoge { def display val x: Int var y: Int } trait Foo extends AnyRef with Hoge
existential type:
val x: java.util.List[T] forSome { type T <: AnyRef} = new java.util.ArrayList
forSomeには対応してないらしい。
type alias:
type of_:[M[_], A] = M[A]
pattern match:
def reverse[T](xs: List[T]): List[T] = { def rev(xs: List[T], acc: List[T]): List[T] = { xs match { case y::ys => rev(ys, y::acc); case Nil => acc } } rev(xs, Nil) }
(追記) yuroyoroさんの指摘で気づいたが、matchはハイライトされてないな。
string literal:
"hoge" + """a b c """ + "bar"
xml literal(+ for comprehension):
<ul> for(i <- 1 to 3) yield <br/> { for(i <- 1 to 3) yield <li>{for(j <- 1 to 5) yield (i, j)}</li> } </ul>
XMLリテラルの中に書いたforがキーワードとして認識されてしまってる辺り、XMLリテラルにはまだちゃんと対応してないっぽい?
while:
var i = 0 while(i <= 10) i += 1 println(i)
if:
if(true) 1 else 2
以上の通りで、網羅的にチェックしたわけじゃないが、(一部を除いて)基本的な構文は一通り扱えるっぽい。