ITエンジニアの本棚

ITエンジニアに有益な書籍や勉強法について紹介していくサイトです。

iOSアプリ開発入門者のためのSwift文法チートシート

スポンサード リンク

iOSアプリ開発をはじめるにあたり、プログラミング言語Swiftの習熟が必須である。*1

僕のように若くないエンジニアにとって、新しいプログラミング言語を勉強するときは、その文法に慣れるまでが大変で骨が折れる作業となる。 Swiftのさまざまな文法について、記述方法と実行結果について備忘録としてまとめたので紹介する。*2

実行はUbuntuで行っている。UbuntuにSwiftをインストールする方法は、以下の記事を参照。

lifeliteracy.hatenablog.com

定数と変数

定数

  1> let s:String = "foo"
s: String = "foo"
  2> s = "bar" // 定数の値を書き換えることはできない
repl.swift:2:3: error: cannot assign to value: 's' is a 'let' constant
s = "bar"
~ ^
repl.swift:1:1: note: change 'let' to 'var' to make it mutable
let s:String = "foo"
^~~
var
  3>

変数

  1> var s:String = "foo"
s: String = "foo"
  2> s = "bar" // 変数の値を書き換えることはできる
  3> s
$R0: String = "bar"
  4>  

基本データ型

整数

  1> var i:Int = 10
i: Int = 10
  2> i + 10
$R0: Int = 20
  3>  

浮動小数点数

  1> var f:Float = 0.1
f: Float = 0.100000001
  2> var d:Double = 0.1
d: Double = 0.10000000000000001
  3>

真偽値

  1> var b:Bool = true
b: Bool = true
  2> b == true
$R0: Bool = true
  3> b == false
$R1: Bool = false
  4>

文字列

  1> var s:String = "Swift"
s: String = "Swift"
  2> print("Hello " + s)
Hello Swift
  3> print("Hello \(s)")
Hello Swift
  4>

制御構造

if文

  1> var score = 100
score: Int = 100
  2> if (score > 90) { 
  3.     print("Excellent") 
  4. } else { 
  5.     print("...") 
  6. } 
Excellent
  7> 

switch文

  1> var c = 3
c: Int = 3
  2> switch c { 
  3. case 1: 
  4.     print("case 1") 
  5. case 2: 
  6.     print("case 2") 
  7. case 3: 
  8.     print("case 3") 
  9.     fallthrough // デフォルトではfallthroughしない
 10. case 4: 
 11.     print("case 4") // ここでbreakされる
 12. default: 
 13.     print("default") 
 14. } 
case 3
case 4
 15> 

for文

  1> for i in 0...2 {
  2.     print(i) 
  3. }
0
1
2
  4> for _ in 0...2 {   // 変数が必要ない場合
  5.     print("hello") 
  6. } 
hello
hello
hello
  7>  

while文

  1> var i = 0
i: Int = 0
  2> while (i < 2) { 
  3.     print(i) 
  4.     i++ 
  5. } 
0
1
  6> repeat {
  7.     print(i) 
  8.     i++ 
  9. } while (i < 2) 
2
 10>

複合型

配列

  1> var a:[Int] = [1, 2, 3]
a: [Int] = 3 values {
  [0] = 1
  [1] = 2
  [2] = 3
}
  2> a[1]
$R0: Int = 2
  3> a.count
$R1: Int = 3
  4> a.append(4)
  5> a
$R2: [Int] = 4 values {
  [0] = 1
  [1] = 2
  [2] = 3
  [3] = 4
}
  6> a.insert(0, atIndex: 0)
  7> a
$R3: [Int] = 5 values {
  [0] = 0
  [1] = 1
  [2] = 2
  [3] = 3
  [4] = 4
}
  8> a.sort({$0 > $1})
$R4: [Int] = 5 values {
  [0] = 4
  [1] = 3
  [2] = 2
  [3] = 1
  [4] = 0
}
  9> a.sort({$0 < $1})
$R5: [Int] = 5 values {
  [0] = 0
  [1] = 1
  [2] = 2
  [3] = 3
  [4] = 4
}
 10> 

辞書

  1> var d = ["a":1, "b":2, "c":3]
d: [String : Int] = 3 key/value pairs {
  [0] = {
    key = "b"
    value = 2
  }
  [1] = {
    key = "a"
    value = 1
  }
  [2] = {
    key = "c"
    value = 3
  }
}
  2> d["b"]
$R0: Int? = 2
  3> d.count
$R1: Int = 3
  4> for (key, value) in d { 
  5.     print("key:   \(key)")
  6.     print("value: \(value)")
  7. } 
key:   b
value: 2
key:   a
value: 1
key:   c
value: 3

タプル

  1> let t = ("a", 1)
t: (String, Int) = {
  0 = "a"
  1 = 1
}
  2> var (s, i) = t
s: String = "a"
i: Int = 1
  3>  

関数

  1> func hello(s:String) { 
  2.     print("Hello " + s) 
  3. } 
  4> hello("Swift")
Hello Swift
  5>  
  6> func hello2(s:String) -> String { 
  7.     return "Hello \(s)" 
  8. } 
  9> print(hello2("Swift"))
Hello Swift
 10>  

まとめ

Swiftの文法は最近流行りの言語と似ており、直感的に書けるため、いまのところは楽しく学習を進めることができている。 以下の2冊の本を読みながら鋭意勉強中なので、このページは随時更新していく。

*1:Objective-Cでも構わないだろうが、これから始める人はおそらくSwiftを選択するだろう

*2:詳細な説明は書籍に任せる