・配列もオブジェクトである。
・先頭の要素は「0」
・配列を使うには「Array」クラスを使う。
・Arrayは要素の型を「型パラメータ」として受け取って初期化。
Int型であれば「Array[Int」」
型は省略しても良い(型推論)
・配列内の要素を取得/設定するには「()」で添字を指定。
・「length」メソッドで配列のサイズを取得できる。
・Scala配列はJavaの配列と対応している(Array[Int]はJavaのint[])
☆ 書式
☆ サンプル
☆ 糖衣構文
・先頭の要素は「0」
・配列を使うには「Array」クラスを使う。
・Arrayは要素の型を「型パラメータ」として受け取って初期化。
Int型であれば「Array[Int」」
型は省略しても良い(型推論)
・配列内の要素を取得/設定するには「()」で添字を指定。
・「length」メソッドで配列のサイズを取得できる。
・Scala配列はJavaの配列と対応している(Array[Int]はJavaのint[])
☆ 書式
・Array[型名](要素サイズ)
・Array[型名](要素1の値, 要素2の値 …)
・Array[型名](要素1の値, 要素2の値 …)
☆ サンプル
scala> val a1 = new Array[Int](10)
a1: Array[Int] = Array(0, 0, 0, 0, 0, 0, 0, 0, 0, 0)
scala> val a2 = Array(1,2,3)
a2: Array[Int] = Array(1, 2, 3)
scala> a2(0) = 100
scala> a2(0)
res1: Int = 100
scala> val num = a2(1)
num: Int = 2
scala> a2.length
res2: Int = 3
scala> a2
res3: Array[Int] = Array(100, 2, 3)
a1: Array[Int] = Array(0, 0, 0, 0, 0, 0, 0, 0, 0, 0)
scala> val a2 = Array(1,2,3)
a2: Array[Int] = Array(1, 2, 3)
scala> a2(0) = 100
scala> a2(0)
res1: Int = 100
scala> val num = a2(1)
num: Int = 2
scala> a2.length
res2: Int = 3
scala> a2
res3: Array[Int] = Array(100, 2, 3)
☆ 糖衣構文
・配列の値を取得する「a(0)」は、Arrayに定義されている「apply」メソッド呼び出しの事。
・配列の値を設定する「a(0) = 10」という式は、Arrayに定義されている「update」メソッド呼び出しの事。
・配列の値を設定する「a(0) = 10」という式は、Arrayに定義されている「update」メソッド呼び出しの事。
scala> a2(1)
res4: Int = 2
scala> a2.apply(1)
res5: Int = 2
scala> a2(1) = 10
scala> a2.update(1,10)
このように読み書きのしやすたのために導入される構文を「糖衣構文(シンタックスシュガー)」と呼ぶ。res4: Int = 2
scala> a2.apply(1)
res5: Int = 2
scala> a2(1) = 10
scala> a2.update(1,10)
■■■ Scalaの演算子 ■■■
・演算子はすべてメソッドである。
たとえば「1 + 2」の「+」はメソッド。
・メソッドが1つの引数をとる場合、ピリオドと()を省略できる。
・引数を取らないメソッドはピリオドを付けずに呼び出しできる。
☆ 一般的な演算子
※ インクリメントとデクリメントは存在しない。
☆ 比較演算子
☆ コメント
たとえば「1 + 2」の「+」はメソッド。
・メソッドが1つの引数をとる場合、ピリオドと()を省略できる。
・引数を取らないメソッドはピリオドを付けずに呼び出しできる。
scala> 1 + 2
res8: Int = 3
scala> 1.+(2)
warning: there were 1 deprecation warning(s); re-run with -deprecation for details
res9: Double = 3.0
scala> 1 .+(2)
res10: Int = 3
※ 数値1の後にスペースを付けないと、ピリオドが小数点と認識(Doubleと判断)される。res8: Int = 3
scala> 1.+(2)
warning: there were 1 deprecation warning(s); re-run with -deprecation for details
res9: Double = 3.0
scala> 1 .+(2)
res10: Int = 3
☆ 一般的な演算子
算子 | 例 | 説明 |
---|---|---|
+ | x + y | 加算 |
- | x - y | 減算 |
* | x * y | 乗算 |
/ | x / y | 除算 |
% | x % y | 剰余 |
+= | x += y | x = x + y |
-= | x -= y | x = x - y |
*= | x *= y | x = x * y |
/= | x /= y | x = x / y |
%= | x %= y | x = x % y |
&& | a && b | aとbが両方trueの場合にtrue |
|| | a || b | aとbが、どちらかtrueの場合にtrue |
< | a || b | aがbより小さい場合にtrue |
<= | a <= b | aがb以下の場合にtrue |
> | a > b | aがbより大きい場合にtrue |
>= | a >= b | aがb以上の場合にtrue |
☆ 比較演算子
・「==」「!=」を使用する。
・値でも、オブジェクトも値として比較可。
Javaの場合、オブジェクトの比較はインスタンスが同じであるかの比較。
・値でも、オブジェクトも値として比較可。
Javaの場合、オブジェクトの比較はインスタンスが同じであるかの比較。
scala> val a = 1
a: Int = 1
scala> val b = 1
b: Int = 1
scala> a == b
res11: Boolean = true
scala> val s1="hello"
s2: String = hello
scala> val s2="hello"
S1: String = hello
scala> s1 == s2
res12: Boolean = true
a: Int = 1
scala> val b = 1
b: Int = 1
scala> a == b
res11: Boolean = true
scala> val s1="hello"
s2: String = hello
scala> val s2="hello"
S1: String = hello
scala> s1 == s2
res12: Boolean = true
☆ コメント
・単一行コメント「//」
・複数行コメント「/* ~ */」(コメントのネストも可!)
・複数行コメント「/* ~ */」(コメントのネストも可!)
0 件のコメント:
コメントを投稿