Top > Scala > case class


コマンドプロンプトで試した結果です。
toString、hashCode、equalsメソッドを持ちます。

new演算子無しでインスタンスを作成できる。
クラス変数はデフォルトはval(イミュータブル)、varを付ければミュータブルにできる。
Matchで比較もできる。

◆インスタンス作成
scala> case class Address(name: String,age: Int,tel: Int)
defined class Address

scala> val acha = Address("boo",100,1234567890)
acha: Address = Address(boo,100,1234567890)

◆中身を確認
scala> acha.name
res__: String = boo

scala> acha.age
res1: Int = 100

scala> acha.tel
res__: Int = 1234567890

◆更新は行えない
scala> acha.name = "fuu"
:__: error: reassignment to val
acha.name = "fuu"

◆更新するには「var」
scala> val porute = Address2("fuu",200,987654321)
porute: Address2 = Address2(fuu,200,987654321)

scala> porute.name
res__: String = fuu

scala> porute.name = "woo"
porute.name: String = woo

scala> porute.name
res__: String = woo

◆Matchしてみる
scala> val piipo = Address("woo",300,111111111)
piipo: Address = Address(woo,300,111111111)

scala> piipo match {
| case Address(name,age,tel) => println( name , age , tel )
| }
(woo,300,111111111)



Copyright © 2015 AchaPorutePiipo All Rights Reserved.