Programming Scalaの2章より。構文解析的なところで。コメント欄を参照のこと。
// varで定義した変数には再代入が可能 var stockPrice: Double = 100 stockPrice = 10 // 変数の型はDoubleなので、Int値を入れてもDouble型のまま println(stockPrice) // こういうキャストの仕方はできない // stockPrice: Int = 10 println(stockPrice.toInt)
Programming Scalaの2章より。構文解析的なところで。コメント欄を参照のこと。
// varで定義した変数には再代入が可能 var stockPrice: Double = 100 stockPrice = 10 // 変数の型はDoubleなので、Int値を入れてもDouble型のまま println(stockPrice) // こういうキャストの仕方はできない // stockPrice: Int = 10 println(stockPrice.toInt)
以下2つのプログラムで挙動が違う。上の関数の戻り値はUnit 下の関数の戻り値はIntになる。
def double(i: Int) { 2 * i } println(double(2))
def double(i: Int) = { 2 * i } println(double(2))
本体の前に等号を持つメソッドを関数の定義とみなし、関数型プログラミングにおいて関数は常に値を返す、とのこと。
Programming Scala: Scalability = Functional Programming + Objects