Swiftの基本を学ぶ

Swiftの基本

Swiftを学ぶ上での基本をまとめています。ここでは変数と定数から始めて、クラスまでを紹介します。プログラミング自体を0から始めたいという人向けに、可能な限り易しく書くつもりです。また、できるかぎり(短いですが)オリジナルのサンプルプログラムを載せるようにしております。私自身が引っかかった部分や、「こういう書き方はできるのか?」といった疑問点に関してもサンプルプログラムにしようと思います。詳細な項目は以下のリンクを参照下さい。

Swift最初の一歩

まずはXcodeを動かしてみよう
XcodeはMacでアプリ開発をするために必須な統合開発環境ツールです。Swiftでプログラミングをする際、Xcodeのplayground...
Swiftの変数(Variables)と定数(Constants)
ここでは、プログラミングにおいて最も基本となる変数と定数について説明します。この後詳しく説明しますが、Swiftでは変数宣言にはvar、定数...

基本的な型(Basic Types)

Swiftの基本的な型(Types)
ここではSwiftにおける基本的な型(type)について説明していきます。型とは「値の種類」のことです。プログラミングでは様々なデータを取り...
SwiftのTuples
Tupleです。発音はタプルと書かれていることが多いですが、英語では"two-pull"(トゥープル)と呼ぶ場合もあります。私は後者の方が馴...
Swiftのオプショナル型(Optionals)
ここではオプショナル(Optionals)に関して、基本的な使い方を説明します。また、オプショナルと密接に関連するnilという特殊な値に関し...

基本的な演算子(Basic Operators)

Swiftの基本的な演算子(Basic Operators)
基本演算子まとめ ここではSwiftにおける基本的な演算子について紹介します。下の表に基本的な演算子をまとめました。すでに他のページで...
Swiftの代入演算子、算術演算子、複合代入演算子
ここでは、演算子で最も基本的な代入演算子と算術演算子について、その簡単な使い方を説明していきます。また、最後に代入と算術を組み合わせた複合代...
Swiftの比較演算子と範囲演算子(Comparison, Range Operators)
ここでは、比較演算子と範囲演算子に関して、基本的な使い方を紹介します。比較演算子は名前通りの演算子で、値の比較をしてその結果をブール値で返す...
Swiftの論理演算子(Logical Operators)
ここでは論理演算子について、その基本的な使い方を説明していきます。論理演算子は複数のブール値を評価するのに必須な演算子です。論理演算は3つの...
Swiftの三項演算子(ternary operator)
ここでは、おそらく演算子の最難関である三項演算子について紹介していきます。 三項演算子に関しては、基本的には別の評価演算のショートカッ...

文字列(Strings and Characters)

Swiftの文字列型(Strings and Characters)
Swiftの文字列型はStringです。また、1文字単位で取り扱うためのCharacterという型もあります。 ここでは、まずStri...
Swiftの文字列型 | Unicodeと文字列のUnicode表現
ユニコード(Unicode)です。ユニコードは文字コードの規格の1つで、使うOSなどに依存しない文字を提供出来るのが特長です。Swiftの文...

コレクション型(Collection Types)、配列など

Swiftのコレクション型(Collection Types)
3つのコレクション型:Array, Set, Dictionary コレクション型(Collection Types)は、 指定され...
Swiftの配列(Arrays)
配列(Arrays)です。プログラミングではお馴染みの、同じ型のデータを系統的に処理したい場合に用いられる箱みたいなものです。使いこなせると...
Swiftの集合(Sets)
Setsというコレクション型です。こいつは重複を許さないので、そういう値をグループ化する時には使えそうです(例えば、国の名前とか)。Sets...
Swiftの辞書(Dictionaries)
辞書コレクション型(Dictionaries)は連想配列の一つで、要素を指定するkeyと要素自体(値)valueを一組としたコレクション型で...

制御構文(Control Flow)

Swiftの制御構文(Control Flow)
制御構文とは、繰り返し処理や条件分岐の際に用いられる構文です。Swiftでは、他のプログラミング言語と同様に基本的な制御構文が用意されていま...

Swiftの繰り返し処理(Loops)

Swiftの繰り返し処理(Loops)
繰り返し処理をループ(Loops)と呼びます。Swiftでは大きく分けてfor-in文とwhile文が用意されています。基本的にはどちらも似...
SwiftのFor-in文
繰り返し処理を「ループ」と呼びますが、Swiftでは大きく分けてfor-in文とwhile文が用意されています。基本的にはどちらも似たような...
SwiftのWhile文
For-in文のページでも少し触れましたが、while文はループを止めるタイミングが最初から分からない場合に使うのが有効です。Swiftのw...

Swiftの条件分岐、制御転送

Swiftの条件分岐(if、switch、where)
条件分岐です。条件分岐は英語ではconditional statementsと言います。Swiftの条件分岐ではifとswitch構文が使用...
Swiftの制御転送(Control Transfer Statements)
制御転送(control transfer statements)は、ループや条件分岐の実行順序を変更する機能です。ある制御によって実行され...

関数(Functions)

Swiftの関数(Functions)
関数(functions)です。関数が理解できれば、構造体(structure)とクラス(class)まで、あと一歩です。ここではSwift...
Swiftの関数 | 引数(Parameters)
引数です。読み方は「ひきすう」です。引数は、基本的には関数へのインプットを与えます。Swiftではパラメータ(parameters)と呼ぶの...
Swiftの関数 | 戻り値(Return Values)
関数の戻り値(Return Values)です。戻り値とは、関数の出力(アウトプット)のことです。ここでは、先ずreturn制御構文を簡単に...
Swiftの関数 | 関数型(Function Types)
ここでは、関数型(Function Types)と入れ子にした関数(Nested Functions)について説明していきます。関数型とは、...

クロージャ(Closures)

Swiftのクロージャ(Closures)
クロージャ(Closures)です。クロージャは、一言で表すなら「関数の一般化」か「関数の略式表現」のようなものです。後で簡単に触れますが、...
Swiftのクロージャ表現(Closure Expressions)
クロージャ表現(Closure Expressions)というのは、難しく言うと最適化されたクロージャ(関数)の構文、簡単に言うと楽をするた...
Swiftの後置クロージャ(Trailing Closures)
後置クロージャ(Trailing Closures)というのは、クロージャ本体(波括弧{}で囲まれた部分)を、カッコ()の後ろに置いたもので...
Swiftのクロージャ、値のキャプチャ(Capturing Values)
ここでは、クロージャ(関数)における、値のキャプチャ(Capturing Values)について説明します。入れ子にした関数(nested ...

クラス(Classes)と構造体(structures)

Swiftのクラスと構造体(Classes And Structures)
クラス(Classes)です。クラスが理解できれば一気にプログラミングの世界が広がる、と思います。Swiftではクラスと構造体(Struct...
Swiftのクラスと構造体の比較
ここでは、クラスと構造体を比較して、共通の特性は何か?、違いは何か?について説明します。その後に具体例を交えて、クラスと構造体の定義構文、イ...
Swiftの構造体は値型(Value Types)、クラスは参照型(Reference Types)
ここでは、構造体とクラスの決定的な違いである、値型(Value Types)と参照型(Reference Types)に関して詳しく説明して...

列挙型(Enumerations)

Swiftの列挙型(Enumerations)
列挙型(Enumerations)です。C言語をご存知の方にはenumと書くと馴染みがあるかもしれません。Swiftの列挙型は非常に多機能で...
Swiftの列挙型 | Associated ValuesとRaw Values
列挙型はassociated valuesという機能があって、列挙型の値に付随した「関連する値」を持たせることができます。また、raw va...
Swiftの再帰的列挙型(Recursive Enumerations)
列挙型を使って、再帰的な構造を持ったデータ(機能)を実装することができます。これはすごいですね。かなり難しいと思いますので、公式マニュアルに...

構成の概要

基本的な構成はAppleデベロッパーサイトで無料公開されている公式ドキュメント「The Swift Programming Language」

を参考にしていますが、翻訳ではありません。ただし、一部サンプルプログラムをそのまま流用しています。

Webから探す場合は、

  • アップルデベロッパーサイトのフッターメニューの一番左下「Swift」をクリック
  • Swiftのページ(英語)に飛ぶので、右上の「Resouces」をクリック
  • 「Guides and References」の項目、「The Swift Programming Language (iBook Store)」からダウンロード

ちなみに、オンラインでもhtml形式で無料公開されているようです。オンラインのドキュメントは、バージョンアップされると更新されるので(2016/09/24現在、Swift 3のドキュメント)、固定バージョンのドキュメントが読みたい場合はiBooksからダウンロードしておいた方が無難です。

2016/04/18 追記: 元々Swift 2.1のドキュメントを参考にしていましたが、2.2に移行しました。バージョンアップ毎に修正をかけようと思います。また、可能な限り変更点が分かるように修正する予定です。

2016/10/05 追記: Swift 3に対応しました。基本的にサンプルコードは全てSwift 3対応ですので、Swift 2.x系では動かない可能性があります。