アプリ開発でよく使うSwiftの4つの文法を解説します
19/03/03 16:20:27 19/04/08 10:48:35
Swiftは主にiOSアプリ開発に使われるプログラミング言語です。
スマホアプリだから、Swiftだからという理由で特殊なコードが使われるわけではなく、基本的なロジックはシステムの種類に関わらず同じです。
もちろん最終的に完成するアプリはiOS用なので特徴がありますが、個々のロジックを見れば単純な処理の組み合わせです。単純な処理を組み合わせることで複雑な処理を作り上げていくのがプログラミングなので、Swiftでもそれは同じです。
目次
文法①変数の定義
どのプログラミング言語でも同じですが、変数を定義する必要があります。変数の定義はプログラミング言語ごとに書き方が異なり、Swiftの場合以下のようにletやvarを付けて宣言します。
let immutableStr = "hello"
var mutableStr = "hello"
mutableStr += " world"
print(mutableStr) // => hello world
まず一行目ではletで変数を定義しています。letを付けるとイミュータブル(一度宣言したらその後状態を変えることができない変数)となります。
次に二行目ではvarを使ってミュータブル(宣言後に変数の状態を変えることができる)な変数を宣言しています。
三行目では二行目で宣言したミュータブルな変数に文字列を追加しています。最後に四行目でvarで宣言した変数を出力しています。その結果、二行目と三行目の文字列が結合されて出力されました。
また上のサンプルコードではすべて文字列を扱っているため、型は推論されてString型になっています。Swiftには型推論機能がありますが、明示的に型を決定することもできます。その際は、以下のように変数の宣言を行います。
var mutableStr: String = "hello"
これで、varで宣言したmutableStrはString型だと明示されました。型を変数名の後ろに書く形式になっており、これは他のプログラミング言語と比較して珍しいのではないでしょうか。
Swiftは型推論が働く仕様になっているのですが、型変換は暗黙には行われません。おそらく型変換まで推論でやってしまうとバグの発生確率が高くなるからでしょう。バグの発生確率を最大限減らすためには型推論自体なくした方が良いのですが、それだと型を宣言する分利便性は落ちます。
Swiftは型推論はあるものの型変換は暗黙的に行われないので、便利さとバグ防止機能のバランスがちょうど良いのではないでしょうか。型変換のサンプルコードは以下です。
let label = "This year is "
let year = 2019
let thisYear = label + String(2019)
print(thisYear) // => This year is 2019
let nextYear = "Next year is \(year + 1)"
print(nextYear) // => Next year is 2020
文字列を途中で明示的に数字型に変換しています。
文法②メソッドの定義
メソッドの定義のサンプルコードは以下です。
func greet(expression: String, person: String) -> String {
return "\(expression) \(person)."
}
greet(expression: "Hello", person: "Jony") // => "Hello Jony"
引数に挨拶と人の名前を指定して、戻り値として結合したものを取得します。
構文にすると以下のようになります。
func 関数名(引数1: 引数1の型, 引数2: 引数2の型, ...) -> 返り値の型 {
}
上のコードではメソッドを呼び出す際にラベルを指定していますが、メソッドを定義するときにアンダーバーを書けばこれを省略できます。具体的には以下のようになります。
func greet(_ expression: String, to person: String) -> String {
return "\(expression) \(person)."
}
greet("Hello", to: "Jony") // => "Hello Jony."
文法③クラスの定義
Swiftは基本的にオブジェクト指向の言語なので、クラスを定義してそこからオブジェクトを生成します。
サンプルコードは以下です。
class MyApp {
class Shape {
var name: String
init(name: String) {
self.name = name
}
}
class Rectangle: Shape {
var width: Double
var height: Double
init(name: String, width: Double, height: Double) {
self.width = width
self.height = height
super.init(name: name)
}
func area() -> Double {
return width * height
}
}
class Triangle: Shape {
var bottom: Double
var height: Double
init(name: String, bottom: Double, height: Double) {
self.bottom = bottom
self.height = height
super.init(name: name)
}
func area() -> Double {
return bottom * height / 2.0
}
}
}
var square = MyApp.Rectangle(name: "My Square", width: 7.5, height: 7.5)
square.name // => "My Square"
square.area() // => 56.25
var triangle = MyApp.Triangle(name: "My Triangle", bottom: 10, height: 8)
triangle.name // => "My Triangle"
triangle.area() // => 40
詳細は割愛しますが、クラスを定義してからそのクラスを使ってオブジェクト生成する例です。
文法④Swiftの文法は変わりがち
Swiftは歴史の浅い言語なので、日々改良が行われています。文法が大幅に変わることがあるので、Swiftの文法を調べる際は細心の情報を見る必要があります。
たとえばfor文のようなプログラミングの基盤となるようなコードが大幅に変えられることもありました。
今後もロジックの基本的な部分が大幅に変わるかもしれないので、注意して見ておいた方が良いでしょう。また、作ったシステムのバージョンをアップするとエラーが発生することもあります。それは、Swiftのバージョンによってコードが異なるからです。
このようにSwiftのコードは変化が多いのですが、それでも大枠は同じです。バージョンアップに伴いコードが変わると言っても、勉強したことが無駄になるわけではありません。コードの表面的な部分が変わっても考え方は同じなので、心配する必要はないでしょう。
そしてプログラミング言語のほとんどは考え方が同じなので、Swiftの勉強をすれば他の言語にも応用が利きます。スマホアプリだけでなくWeb開発でも使えるスキルが身に付きます。
案件量が豊富なアルマサーチ
最後に、アルマサーチのご紹介!
アルマサーチはフリーランス向けに案件をご紹介することに特化したエージェントサービスです。豊富な案件量から、安定して継続的な案件のご紹介を実現しており、口コミから登録エンジニアが急増中です。
アルマサーチが選ばれる理由
- 豊富な案件量。週3〜4日の案件や在宅リモート案件も。
- 優秀なコンサルタント陣。
- 案件に参画後もしっかりサポート。
豊富な案件量
フリーランス向けに特化し、業界屈指の案件量を誇ります!週3〜4日の案件や、在宅リモート案件もありますし、その他あらゆる希望をしっかりお伝えください。最適な案件のご紹介をさせていただきます。
優秀なコンサルタント陣
技術に疎く、開発の希望を伝えても響かないエージェント・・・嫌ですよね。アルマサーチにはそのような者は一切おりません!さらに独立にまつわる税金や保険関係に詳しいスタッフが徹底的にサポートさせていただきます。
案件に参画後もしっかりサポート
常駐先が決まった瞬間に、一度も連絡が取れなくなるエージェント・・・いますよね?アルマサーチでは、そのようなことは一切ありません!常に電話やメールは即対応しますし、月に1度のランチミーティングなどから現場の状況を細かくヒアリングし、就業環境改善に尽力いたします。
▼Swift関連の記事一覧
1, 【Swiftのフリーランス案件情報付き】仕事やエンジニアの将来性・学習方法!
2, 繰り返し処理に使えるSwiftのfor文とfor-in文の便利な使い方まとめ
3, 条件分岐に便利なSwiftのSwitch文の使い方まとめ
4,(この記事)アプリ開発でよく使うSwiftの4つの文法を解説します
5, Swiftのoptional型を使いこなすための7つのポイント
6, Swiftで文字列を扱うためのstring型の使い方
7, Swiftでの配列の宣言・初期化・代入・参照の方法まとめ
8, 実際の開発現場でのSwiftの変数・定数の使われ方を解説します
9, Swiftでif let文を使って出来ることとguard letの使い分けに関して
10, 開発現場でよく使うSwiftのif文の条件分岐をまとめました
11, SwiftにおけるTupleの使い方とわかりやすく解説します
12, 初心者にオススメのSwiftのサンプルコードをまとめてみました
13, SwiftのString、Int、Doubleの型の変換方法をまとめました
14, 開発現場で役に立つSwiftのクロージャの使い方
15, Swiftでwhileを使って上手に繰り返し処理を行おう
16, Swiftで文字列の長さをチェックするのにlengthを使ってみよう
17, Swiftのdictionaryの使い方と初期化方法をまとめました
18, Swiftの値渡しと参照渡しに関するまとめ
19, Swiftで参照渡ししたい時のinoutの便利な使い方
20, Swiftでfor-in文でindexを使いたい時の方法まとめ
21, Swiftでのクラスとstruct(構造体)の使い分けを解説します
人気記事