★★ 変数
var 変数名:型 = 初期値
var 変数名 = 初期値
var 変数名1,変数名2 = 初期値
※つまり「型」は省略可。var 変数名 = 初期値
var 変数名1,変数名2 = 初期値
☆ 実行例
C:\>scala
Welcome to Scala version 2.10.2 (Java HotSpot(TM) 64-Bit Server VM, Java 1.7.0_40).
Type in expressions to have them evaluated.
Type :help for more information.
scala> var num:Int=10
num: Int = 10
scala> num=20
num: Int = 20
scala> var n1,n2,n3=1
n1: Int = 1
n2: Int = 1
n3: Int = 1
scala>
Welcome to Scala version 2.10.2 (Java HotSpot(TM) 64-Bit Server VM, Java 1.7.0_40).
Type in expressions to have them evaluated.
Type :help for more information.
scala> var num:Int=10
num: Int = 10
scala> num=20
num: Int = 20
scala> var n1,n2,n3=1
n1: Int = 1
n2: Int = 1
n3: Int = 1
scala>
★★ 定数
val 変数名:型 = 初期値
val 変数名 = 初期値
val 変数名1,変数名2 = 初期値
※ 宣言する形式は変数の場合と同じ。val 変数名 = 初期値
val 変数名1,変数名2 = 初期値
☆実行例
scala> val message="Hello"
message: String = Hello
scala> message="Scala"
:8: error: reassignment to val
※ 定数に値を代入しようとするとエラーとなる。message: String = Hello
scala> message="Scala"
message="Scala" ^scala>
※ 関数プログラミングでは valは重要。まずは val で宣言し、うまく行かない場合のみ var を使用する。
★★ 型推論
変数・定数で型を指定しなければ Scalaが型を判断する。
★★ セミコロン(文末)
Scalaでは文末にセミコロンを付けない。(付けても良い)
通常は1行に複数文記述するとき以外はセミコロンは付けない。
通常は1行に複数文記述するとき以外はセミコロンは付けない。
★★ 基本データ型
型名 | 説明 | デフォルト値 |
---|---|---|
Byte | 8ビット符号付き整数 | 0 |
Short | 8ビット符号付き整数 | 0 |
Int | 32ビット符号付き整数 | 0 |
Long | 64ビット符号付き整数 | 0 |
Char | 16ビット符号なしUnicode文字 | '\0' |
String | Charシーケンス | null |
Float | 32ビットIEEE754単精度浮動小数点数 | 0.0 |
Double | 64ビットIEEE754単精度浮動小数点数 | 0.0 |
Boolean | trueかfalse | false |
☆デフォルト値とは
デフォルト値は varで変数を宣言したときに「_」(アンダースコア)を指定した場合の値。
宣言した時点で値が定まっていない場合は「_」で取りあえず初期値を設定しておく。
宣言した時点で値が定まっていない場合は「_」で取りあえず初期値を設定しておく。
scala> var longNumber:Long = _
longNumber: Long = 0
longNumber: Long = 0
☆ Scalaの基本データ型はオブジェクト型である
オブジェクト型なので変数や数値に対してもメソッドを呼べる。
scala> var num:Int = 10
num: Int = 10
scala> num.toString
res1: String = 10
scala> 10.toString
res2: String = 10
scala>
num: Int = 10
scala> num.toString
res1: String = 10
scala> 10.toString
res2: String = 10
scala>
☆ 基本データ型のパッケージ
基本データ型の中で、Stringだけは「java.lang」パッケージに属し、それ以外は「scala」パッケージに属する。
Scalaでは、scalaパッケージとjava.langパッケージは自動的にimportされる。
Scalaでは、scalaパッケージとjava.langパッケージは自動的にimportされる。
★★ リテラル
☆ 整数リテラル
☆ 有効な値の範囲
☆ 浮動小数点リテラル
☆ ブールリテラル
☆ 文字リテラル
☆ エスケープシーケンス文字
☆ 文字列リテラル
☆ シンボルリテラル
・「'」(シングルクォート)を名前の前に付ける。
・例) 「'symbol」というリテラルは「scala.Symbol("symbol")」という式と同じ意味。
・同じ名前を持った2つのシンボルは、同じオブジェクトを示す。そのためマップのキーとして文字列の代わりにSymbolを使う場合がある。
種類 | フォーマット | 例 |
---|---|---|
10進数 | 0か0以外の数字に0個以上の数字が続く | 0、1、765 |
8進数 | 0の後に1個以上の数字(0~7)が続く | 011、046 |
16進数 | 0xの後に1個以上の16進数数値(0~9、A~F、a~f)が続く | 0xFF、0x3B |
☆ 有効な値の範囲
型名 | 最小値 | 最大値 |
---|---|---|
Byte | -2^7 | 2^7-1 |
Short | -2^15 | 2^15-1 |
Int | -2^31 | 2^31-1 |
Long | -2^63 | 2^63-1 |
Char | 0 | 2^16-1 |
☆ 浮動小数点リテラル
・0の後に「.」(ピリオド)が付き、その後に0個以上の数値が続くと "浮動小数点リテラル" となる。
・末尾に「F」か「f」が付くと "Floatリテラル" となる。
・末尾に「D」か「d」が付くと "Doubleリテラル" となる。
・指数形式は「e」または「E」の後に「+」か「-」と1個以上の数値が続く。
・末尾に「F」か「f」が付くと "Floatリテラル" となる。
・末尾に「D」か「d」が付くと "Doubleリテラル" となる。
・指数形式は「e」または「E」の後に「+」か「-」と1個以上の数値が続く。
scala> var float = 0.1
float: Double = 0.1
scala> var float = 0.1F
float: Float = 0.1
scala> var double = 0.1e+3f
double: Float = 100.0
float: Double = 0.1
scala> var float = 0.1F
float: Float = 0.1
scala> var double = 0.1e+3f
double: Float = 100.0
☆ ブールリテラル
「true」か「false」を代入
scala> var t = true
t: Boolean = true
scala> var f = false
f: Boolean = false
t: Boolean = true
scala> var f = false
f: Boolean = false
☆ 文字リテラル
・「'」(シングルクォート)で囲まれたUnicode文字かエスケープシーケンス。
・明示的な文字か、「\u」に続いて4個の16進数値を並べたUnicode文字の一般表現。
・「\」に続いて文字のコードポイントを8進数か16進数で表明した値。
・明示的な文字か、「\u」に続いて4個の16進数値を並べたUnicode文字の一般表現。
・「\」に続いて文字のコードポイントを8進数か16進数で表明した値。
scala> val a = 'A'
a: Char = A
scala> val b = '\u0041'
b: Char = A
scala> val c = '\101'
c: Char = A
a: Char = A
scala> val b = '\u0041'
b: Char = A
scala> val c = '\101'
c: Char = A
☆ エスケープシーケンス文字
リテラル | 意味 |
---|---|
\n | 改行 |
\r | 復帰 |
\t | タブ |
\b | バックスペース |
\" | ダブルクオート |
\' | シングルクオート |
\\ | バックスラッシュ |
\f | 改ページ |
☆ 文字列リテラル
・「"」(ダブルクォート)で囲む。
・「"""」(ダブルクォート3つ)で文字列を囲むと生の文字列(raw string)を使用可能。
・「"""」(ダブルクォート3つ)で文字列を囲むと生の文字列(raw string)を使用可能。
scala> val s = "hello"
s: String = hello
scala> val es = "\"\'\\"
es: String = "'\
scala> val es = """\"\'\\"""
es: String = \"\'\\
s: String = hello
scala> val es = "\"\'\\"
es: String = "'\
scala> val es = """\"\'\\"""
es: String = \"\'\\
☆ シンボルリテラル
・「'」(シングルクォート)を名前の前に付ける。
・例) 「'symbol」というリテラルは「scala.Symbol("symbol")」という式と同じ意味。
・同じ名前を持った2つのシンボルは、同じオブジェクトを示す。そのためマップのキーとして文字列の代わりにSymbolを使う場合がある。
scala> val s = 'sSymbol
s: Symbol = 'sSymbol
scala> s.name
res0: String = sSymbol
s: Symbol = 'sSymbol
scala> s.name
res0: String = sSymbol
0 件のコメント:
コメントを投稿