Guide to Scala -Scalaプログラミング入門

を読みました。

http://www.atmarkit.co.jp/fjava/index/index_scala.html

で公開されているもののKindle版の方です。

実行環境としては

OS X 10.9.4
Scala code runner version 2.11.0 -- Copyright 2002-2013, LAMP/EPFL
IntelliJ 13.1.3

でやりました。

brew install scala

で2.11が落ちてきましたが、IntelliJScalaプラグインが想定する構成ではないとかでちょっとハマりましが、 いつものようにstackoverflowに助けてもらいました。感謝。

1-1.本書の対象読者で

Scalaを知っている必要はありませんが、プログラミングおよびオブジェクト指向について、 ある程度の知識があることを前提としています。

とありますがそこまで深い理解はなくても問題はないと思います。 Javaのソースちょっと読めるくらいでも大丈夫なんではないでしょうか。

また、Javaとの大きな違いが出る5章以降はじっくりいったほうがよさそうです。 というかあまり自分の中でも整理しきれていない感じ。

型パラメータの制約で

class Base
class Ex1 extends Base
class Another

class Y[A] {
  def exec(implicit t:A<:<Base):Unit = println("exec")
}

    val y = new Y[Ex1]
    y.exec

    //newだけでは型パラメータの制約はクリアしているのでここまでならエラーではない
    val y2 = new Y[Another]
    //制約を満たせない事をやろうとするとコンパイルエラー
    y2.exec

とか理解甘いうちはScala怖いになってしまう。 implicitもなんかもなんかすごい。 ヤバイ。 Scalaヤバイ。 油断していると型にコロコロされてしまう。

ただこれでScalaのソースはなんとなく雰囲気をつかめる気がします。 なんて軽い気持ちでググってちょっと見たものにボコボコにされました。 Scalaヤバイ。

内容としては丁寧に書かれておりスイスイ読み進められました。 これからScala触ってみたいんだけどいきなり分厚い本相手だと挫けそうなんて人にはいいかもしれません。 Web版なら無料ですし、Kindle版だって100円です。 ただやっぱり深く学んでいくならば相応のモノにアタックする必要はあるでしょう。

そんなわけで欲しいものリストにまた何冊か増えましたとさ。