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 let x = 1
2 let y = 2
3 
4 if x = y {
5   // Compilation error
6 }

2. Remainder

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

1 var a = 10
2 var b = 3
3 a % 3 // 1
4 
5 var a_f = 11.1
6 var b_f = 1.1
7 a_f % b_f // 0.1

3. === と !==

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

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

4. 範囲オペレーター

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

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