Menu

Category

Archive

logo


The Swift Programming Language ~ Basic Operators

2014-06-06 22:45:00 +0900
  • このエントリーをはてなブックマークに追加

iBooks にある “The Swift Programming Language” の勉強メモ。Objective-C と C を普段書いている自分から、ちょっと馴染みがないものを特にまとめておきます。目次は こちら

今回は、オペレーターに関して。

Basic Operators

1. 代入オペレーター(=)の返り値

Swift では、条件で assignment を間違って使用してしまうことをふせぐため、assignment (=) では、値を返さない。なので、このコードはエラー。このおかげで、等価比較 (==) をしようとしたが、= をひとつだけ打ってしまうようなエラーをコンパイル時に見つけることができる。

1
2
3
4
5
6
let x = 1
let y = 2

if x = y {
	// Compilation error
}

2. Remainder

% は余りを返すオペレーターですね。Swift では、浮動小数点に対しても使用することができます。

1
2
3
4
5
6
7
var a = 10
var b = 3
a % 3 // 1

var a_f = 11.1
var b_f = 1.1
a_f % b_f // 0.1

3. === と !==

通常のロジカルオペレーターに加えて、同一のオブジェクトへの参照かどうかを判定するオペレーターがある。通常の == / != は値を比較するが、=== / !== は同じオブジェクトかどうかの参照自体の比較をする。

1
2
3
4
5
6
7
8
9
10
11
var str1 = "dog"
var str2 = String("cat")
var str3 = String("cat")
var str4 = "bird"
var str5 = "bird"
str1 ==  str2  // false
str2 ==  str3  // true
str2 === str3  // false
str3 === str3  // true
str4 === str5  // false
str4 === str4  // false

4. 範囲オペレーター

ループ等で使われる Range Operator というものがある。a…b は、a 以上 b 以下 (b を含む)、a..b は、a 以上 b より下 (b を含まない)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
for i in 0...5 {
	println(i)
}
/* Output:
0
1
2
3
4
5
*/

for i in 0..5 {
	println(i)
}
/* Output:
0
1
2
3
4
*/