Scalaの基本構文(2)

■■■ Scalaの配列型 ■■■
・配列もオブジェクトである。
・先頭の要素は「0」
・配列を使うには「Array」クラスを使う。
・Arrayは要素の型を「型パラメータ」として受け取って初期化。
Int型であれば「Array[Int」」
型は省略しても良い(型推論)
・配列内の要素を取得/設定するには「()」で添字を指定。
・「length」メソッドで配列のサイズを取得できる。
・Scala配列はJavaの配列と対応している(Array[Int]はJavaのint[])

☆ 書式
・Array[型名](要素サイズ)
・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)

☆ 糖衣構文
・配列の値を取得する「a(0)」は、Arrayに定義されている「apply」メソッド呼び出しの事。
・配列の値を設定する「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)
このように読み書きのしやすたのために導入される構文を「糖衣構文(シンタックスシュガー)」と呼ぶ。

■■■ Scalaの演算子 ■■■
・演算子はすべてメソッドである。
たとえば「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と判断)される。

☆ 一般的な演算子
算子説明
+x + y加算
-x - y減算
*x * y乗算
/x / y除算
%x % y剰余
+=x += yx = x + y
-=x -= yx = x - y
*=x *= yx = x * y
/=x /= yx = x / y
%=x %= yx = x % y
&&a && baとbが両方trueの場合にtrue
||a || baとbが、どちらかtrueの場合にtrue
<a || baがbより小さい場合にtrue
<=a <= baがb以下の場合にtrue
>a > baがbより大きい場合にtrue
>=a >= baがb以上の場合にtrue
※ インクリメントとデクリメントは存在しない。

☆ 比較演算子
・「==」「!=」を使用する。
・値でも、オブジェクトも値として比較可。
 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

☆ コメント
・単一行コメント「//」
・複数行コメント「/* ~ */」(コメントのネストも可!)

0 件のコメント:

その他の記事