by shigemk2

当面は技術的なことしか書かない

Scalaのキャスト

Programming Scalaの2章より。構文解析的なところで。コメント欄を参照のこと。

// varで定義した変数には再代入が可能
var stockPrice: Double = 100
stockPrice = 10
// 変数の型はDoubleなので、Int値を入れてもDouble型のまま
println(stockPrice)

// こういうキャストの仕方はできない
// stockPrice: Int = 10
println(stockPrice.toInt)

Scalaの関数定義

以下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

Programming Scala: Scalability = Functional Programming + Objects