ARGENTO CUORE

Category : 変数

--.--.--[--] スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

2010.05.09[日] Scala 変数系メモ

プリミティブ型は全てAnyValを継承している。
Unit
Boolean
Byte
Short
Char
Int
Long
Float
Double

■変数
var hoge = "Hoge"
val piyo = "Piyo"


varは作成後、その参照先の実体を変更することのできる変数(variable)
valは作成後、その参照先の実体を変更することができない変数(value)

valは参照先を変更できないが、参照先の実体が保持する値の変化までは関与しないので、例えば配列をセットし、配列の個々の要素の値を書き換えることはできる。
varは、宣言時の型(明示的に宣言していなくても、セットした値に応じて型が決まる)に応じてセットできる値の型が決まる。


関数宣言と変数宣言の違い
・def
式の評価は呼び出し時に行われるので、
def a = 2*3
という場合に、実際にaを呼ばない限りは2*3は評価されない。

・val,var
式の評価はセット時に行われるので、
var a = 2*3
という場合、すぐに式は評価され結果値を得ることができる。


■値渡し(call-by-value)、名前渡し(call-by-name)
def hoge(str: => String)
という形で、=>を書くと名前渡しになる。

名前渡しをすると、遅延評価と呼ばれる機能が働き、引数の値を使用するときに、その値を持ってくるようになる。通常の値渡しでは、関数が呼ばれた際にその引数の値を持ってくる。


■Set/HashMapの操作
var set = Set[String]() - 型を指定して作る
var map = HashMap[String, Int]()

要素の追加
set += "hello"
map += (key -> value)


要素の削除
set -= "hello"
map -= key


キーと値を取り出す
for(k <- map.keySet){ //keySetはキーを取り出す。
println(map(k))
}
スポンサーサイト

Scala Feed

scala feed

FC2カウンター

プロフィール

RoNor

Author:RoNor
得意呪文はScalaですって言えるようになるのが夢です。
デスマーチ中、パーティメンバーの防御力を向上させたりさせなかったり。

検索フォーム

QRコード

QRコード

Copyright © 2009-2010 ARGENTO CUORE and RoNor All rights reserved.

上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。