AccessViolation Exception

仕事でもはんだづけ、家でもはんだづけ

ScalaでFizzBuzzを書くと

gista510f1d929df340a6dc8

関数呼び出しの省略

println(1 _2 fizz _4 buzz fizz 7 _8 "fizz" buzz 11 fizz 13 _14 fizzbuzz)
//println(1._2(fizz)._4(buzz).fizz(7)._8("fizz").buzz(11).fizz(13)._14(fizzbuzz))

Implicit Class

あたかもクラスに機能追加したように振る舞える

implicit class MyInt(val i:Int) {
    def hoge = "foo"
}

100.hoge// => "foo"

Generalized Type Constraints

特定の型のみが呼び出せるように制約をかける

case class Bar[A](b:A) {
    def baz(implicit ev : A <:< Int) = "Only Int"
} 

Bar(100).baz// => "Only Int"
Bar("hoge").baz//Error

<:<(サブクラス) 以外にも=:=(同じ型),<%<(キャストして等価になれる)などがある