演算子

MCScriptでは符号なし右シフト、インクリメント、デクリメントを除き、Javaの演算子をすべて利用できます。この節では、Javaには無い演算子や、動作の違う演算子について解説します。

整数除算演算子「//」

通常の除算を行った後に、小数点以下を切り捨てます。

Println(5d // 2) # 2
Println(1.5 // 1) # 1

べき乗演算子「**」

べき乗を計算します

Println(2 ** 8) # 256
Println(0 ** 0) # 1

//=、**=も利用出来ます。

同値演算子「==」「!=」

同値演算子は、Javaのequalsメソッドにあたります。

Println("aaa" == String("aaa")) # true
Println("aaa" != String("aaa")) # false

同一演算子「is」「isnot」

同一演算子は、Javaの「==」にあたります。 MCScriptの数値は、すべてラッパークラスで扱われるため、同一演算子での比較はできません。1

Println(128 is 128) # false
Println(1d is 1d) # false
Println('a' is 'a') # false

a = null
Println(a is null) # true
Println(a isnot null) # false

a = true
Println(a is true) # true

所属検査演算子「in」「notin」

右辺がコレクションの場合contains、Mapの場合containsKeyと同義です。配列の場合は各要素をループし、equalsメソッドで比較します。

list = [1, 2, 3]
Println(1 in list) # true
Println(1 notin list) # false

map = {"a":1, "b":2}
Println("a" in map) # true
Println(1 in map) # false

array = Array(int, 5)
array[3] = 1
Println(1 in array) # true

数値が範囲内かどうかを判定することも出来ます。

Println(4 in 1..10) # true
Println(4 notin 5..1) # false

Null合体演算子「?:」

左辺がnullであれば右辺を評価し、それ以外の場合左辺を評価します。

a = 1
Println(a ?: 2) # 1
a = null
Println(a ?: 2) # 2
1. Javaでは-128から127までの整数を同一オブジェクトとして扱うため、その範囲であれば同一演算子で比較可能です。 ↩

results matching ""

    No results matching ""