2014-05-01から1ヶ月間の記事一覧
今年はドイツのベルリンで6月16日〜6月18日にかけて開催されます。去年よりも発表のバリエーションが豊かで今からどのセッションを見に行こうか と考えると非常に楽しみです。
Scala初学者の方が書くコードには、しばしば以下のようなものが散見されます。 list.map {x => x match { case A => case B => case _ => } } 無名関数を作るための構文である{x => ...}とexp match { case ... }を別々に考えるとこのようなコードになるのは…
TipsというよりFAQの部類ですが、ときどきつまづく方がいるようなので。 Scalaで以下のような可変長引数を取る関数printAllを定義すると、 def printAll(ss: String*): Unit = { ss.foreach(println) } printAll("BAZ", "FOO", "BAR") //BAZ //FOO //BAR の…
ネタが尽きたわけではないが、Manifest絡みで嫌な現象に遭遇したのでメモと回避方法(現在はManifest型をつかうべきではないがそれはおいておく)。 まず、問題として、次のようなコードを書くと実行時例外(unknown error)が発生する(Scala 2.10.4)。 trait M[…
ときどきみかけるコードなのですが、パターンマッチを使ったコードで、次のようなものがあります。 exp match { case A => { expA1 expA2 ... } case B => { expB1 exbB2 ... } } Scalaでは、case節に複数の式を続けて書くことができるのでこのようなブレー…
皆さんご存知の通り、Scalaにはパターンマッチという機能があります。この機能、しばしば型に対するswitch-caseとして使われていることがあるようです。 たとえば、 sealed trait class Value case class Hoge(value: Int) extends Value case class Foo(val…
Scalaでnullを使っていいのは小学生までだよねー、というのは冗談ですが、Scala文化圏ではnullを使わないのが原則です(いくつか例外はありますが)。代わりに出てくるのがOption型です。しかし、Scalaでは困ったことにnullを返すJavaのメソッドを呼び出さな…