scala っっっっっっ っっ っっ
想定する参加者Scala を触り始めた人
とりあえず Java っぽく Scala 書いている
Intellij IDEA + scala plugin が入っている
※ 全く触ったことがない方でも、雰囲気は伝わる ... はず
Main クラス作成1.File -> New -> Project -> Scala
2.scalike プロジェクト作成
a. ※ scala SDK を選択、もしくは New から scala-sdk-2.11.7 を選択
3.src を選択して右クリック→ New→scala クラス
4.name: Main, Kind: Object
5.中で main と入力し、保管で enter
6.println(“Hello World!”)
7.main メソッドを右クリック→ Run’Main’
Option からはじめよう!
例外、 null 、 early exit 、全部 Option !Some(x), None
mapfilter
取り出しpattern matchget, getOrElse
エラーを区別したい!None じゃなくてエラーメッセージを残したい
Right(x), Left(e)( あんまり使わない ...)right.map
right.filter
Option -> Right( 定石 )toRight(SomeThingLeft)
演習問題 2 (3 分くらい )日割り予算を求めよ
budget / days
計算はメソッド化すること
引数は予算と日付
日割り金額が 1 円以下の場合はエラー
private def dailyBudget(...) = {...}
○○ さんの日割り予算は〇〇円です
よりよく書くヒント引数は Int? Option[Int]?
Option でも Either でも使える汎用さ =Int
map や for で中身を取り出して、意識して Int で書く
返り値は Int? Option? Either?Option が例外の存在を伝える
Option だから汎用的。エラー文言は呼び出し側で変換すれば良い
Option⇔Either 等変換の手助けメソッドはどんどん活用
Tips例外を抑制して Option 化
scala.util.Try().toOption
関数の引数省略
関数の引数は _ で1回ずつ参照可能
either は scalaz の方がげふんげふん ...