Swift 5.3 日本語化計画 Swift の総合案内
目次
Xcode の新機能
Swift について
特徴
安全
Swift.org とオープンソース
プロジェクト
プラットフォームサポート
アップルのプラットフォーム
Linux
ブログ:Swift パッケージ用の REPL サポート
例
Vapor’s HTTP
実装の詳細
結論
質問?
ミラーの仕組み
免責事項
インターフェース
構造体
動的送出を魔法のように完了
タプルの反映
swift_getFieldAt
構造体 (Structs)
クラス
列挙型
様々な種類
Swift のインターフェース
結論
Swift 5.0 のリリースプロセス
動機と目標
バイナリの互換性
ソースの互換性
Swift 5.0 のスナップショット
Swift 5.0 への変更
Swift 5.0 への変更哲学
影響を受けたリポジトリ
リリースマネージャ
Swift 4.2 がリリースされた!
言語の更新
汎用の改善
標準ライブラリの更新
バイナリ互換性
言語とコンパイラの追加の更新
パッケージマネージャの更新
Swift 4.2 への移行
ドキュメント
プラットフォーム
Linux
アップル(Xcode)
ソース
Swift フォーラムに関連するプロジェクトを紹介
Swift コミュニティがホストとなった継続的統合
質問?コメント?
暗黙的に開封された Optionals の再実装
暗黙の開封は宣言の一部です
ソース互換性
T! への強制
宣言よりも型で ! の使用
暗黙に開封された optional として宣言された値への map の呼び出し
型ではない型は推論できません
AnyObject ルックアップ
try?
switch
Optional 対暗黙開封された Optional でのIn-Out パラメータの過負荷
ImplicitlyUnwrappedOptional の拡張
Nil のブリッジ
結論
質問?コメント?
Swift 4.1 がリリースされた!
コンパイラの更新
言語の改善点
ビルドの改善点
Foundation
追加の更新
ABI の安定性
パッケージマネージャの機能強化
Swift 4.1 への移行
ドキュメント
プラットフォーム
Apple (Xcode)
Swift 4.2 リリースの過程
動機と目標
バイナリ互換性
ソース互換性
Swift 4.2 のスナップショット
Swift 4.2 に変更を加える
Swift 4.2 への変化の哲学
影響を受けたリポジトリ
リリースマネージャ
リリース分岐のプルリクエスト
Swift 4.1 のコードサイズ最適化モード
コード最適化への影響
結論
Swift フォーラム開店!
フォーラムの構造
アカウント
電子メール
行動規範
FAQ
標準ライブラリの条件準拠
Equatable のコンテナ
Collection のプロトコル
熱望 (Eager) 対 Lazy 分割
遅延した分割ラッパー
lazy の拡張
条件により双方向 (Bidirectioal)
Swift 4.1 リリースの過程
ソース互換
Swift 4.1 のスナップショット
Swift 4.1 への変更
Swift 4.1 への変更を哲学する
影響を受けたリポジトリ
リリースマネージャ
リリース分岐に関するプルリクエスト
致命的なエラーの表示を改善した Xcode 9.1
Swift 4.0 での Dictionary と Set の改善
キーで値をグループ化
辞書の値を変換
キー値のペアから辞書をビルド
特定のエントリの選択
デフォルト値の使用
2 つの辞書を 1 つに統合
そしてそれだけではない...
Swift 4.0 リリース!以下の記事については
こちら
をご覧下さい。
あえてプログレッシブレイアウトには変更しません。
Swift プログラミング言語
ようこそ Swift へ
Swift について
バージョン互換性
Swift のツアー
単純な値
制御フロー
関数とクロージャ
オブジェクトとクラス
列挙型と構造体
プロトコルと拡張機能
エラー処理
汎用(ジェネリック)
Swift 言語のガイド
Swift の基本
定数と変数
定数と変数の宣言
型注釈
定数と変数の命名
定数と変数の印刷
コメント
セミコロン
整数
整数の境界
Int
UInt
浮動小数点数
安全な型と型推論
数値リテラル
数値型変換
整数変換
整数と浮動小数点間の変換
型エイリアス
ブール型
タプル
Optional
nil
if 文と強制開封
Optional の結合
暗黙に開封された Optionals
エラー処理
アサーション(断言)と前提条件
アサーションを使用したデバッグ
前提条件の実施
基本演算子
専門用語
代入演算子
算術演算子
剰余演算子
単項マイナス演算子
単項プラス演算子
複合代入演算子
比較演算子
三項条件演算子
Nil 合体演算子
範囲演算子
閉鎖範囲演算子
半開放範囲演算子
片方の範囲
論理演算子
論理 NOT 演算子
論理 AND 演算子
論理 OR 演算子
論理演算子の組み合わせ
明示的な括弧
文字列と文字
文字列リテラル
複数行の文字列リテラル
文字列リテラル内の特殊文字
拡張した文字列の区切り文字
空の文字列の初期化
文字列の可変性
文字列は値の型
文字を使った作業
文字列と文字を連結
文字列補間
ユニコード(Unicode)
Unicode スカラー値
文字列リテラルの中の特別の文字
拡張書記クラスタ
文字を数える
文字列のアクセスと変更
文字列のインデックス
部分文字列
挿入と削除
文字列の比較
文字列と文字の等価性
接頭辞と接尾辞の等価性
文字列の Unicode 表現
UTF-8 の表現
UTF-16 表現
Unicode のスカラー表現
コレクション型
コレクションの可変性
配列
配列型省略構文
空の配列の作成
デフォルト値を持つ配列の作成
2つの配列を共にして一つの配列に
配列リテラルでの配列の作成
配列へのアクセスと変更
配列の繰り返し処理
Set
Set 型のハッシュ値
Set 型の構文
空の Set の作成と初期化
配列リテラルで Set の作成
Set へのアクセスと変更
Set を反復処理
Set 操作の実行
基本的な Set の操作
Set の身分と等価性
Dictionary
Dictionary 型の省略型構文
空の Dictionary を作成
Dictionary リテラルで Dictionary の作成
Dictionary のアクセスと変更
Dictionary を繰り返し処理
フロー制御
For-In ループ
While ループ
While
Repeat-While
条件文
if 文
Switch
暗黙の Fallthrough はなし
範囲の一致
タプル(Tuples)
値の結合
Where
複合した case
制御転送文
Continue
Break
ループ文内の Break
Switch 文内の Break
Fallthrough
ラベル付きの文
早期終了
API 利用可能性の確認
関数
関数の定義と呼び出し
関数のパラメータと戻り値
パラメータなしの関数
複数パラメータを持つ関数
戻り値なしの関数
複数の戻り値を持つ関数
optional のタプル型の戻り値
暗黙の戻り値を持つ関数
関数引数のラベルとパラメータ名
引数のラベルの指定
引数ラベルの省略
デフォルトのパラメータ値
可変個引数のパラメータ
In-Out パラメータ
関数型
関数型の使用
パラメータ型としての関数型
戻り値の型としての関数型
入れ子になった関数
クロージャ
クロージャ式
ソートするメソッド
クロージャ式の構文
文脈から型を推論
単一式クロージャからの暗黙的戻り値
引数名の省略
演算子メソッド
後続クロージャ
値のキャプチャ
クロージャは参照型
クロージャのエスケープ
オートクロージャ
列挙型
列挙型の構文
switch 文で列挙型の値と一致
列挙型 case の繰り返し処理
関連する値
生の値
暗黙に割り当てられた生の値
生の値からの初期化
再帰的な列挙型
構造体とクラス
構造体とクラスを比較
定義の構文
構造体とクラスのインスタンス
プロパティにアクセス
構造体型のためのメンバー化イニシャライザ
構造体と列挙型は値型
クラスは参照型
ID 演算子
ポインタ
構造体とクラスの間の選択
文字列、配列、辞書の代入とコピーの動作
プロパティ
格納されたプロパティ
定数構造体インスタンスの格納されたプロパティ
遅延して格納されたプロパティ
格納されたプロパティとインスタンス変数
計算されたプロパティ
セッタ宣言の省略形
読み取り専用の計算されたプロパティ
プロパティ監視者
プロパティラッパー
ラップされたプロパティの初期値の設定
プロパティラッパーからの値の投影
グローバルとローカルの変数
型プロパティ
型プロパティの構文
型プロパティの照会と設定
メソッド
インスタンスメソッド
self プロパティ
インスタンスメソッド内から値の型を変更
変異メソッド内で self に代入
型メソッド
サブスクリプト
サブスクリプトの構文
サブスクリプトの使用法
サブスクリプトのオプション
型サブスクリプト
継承
基本クラスの定義
サブクラス化
オーバーライド(上書き)
スーパークラスメソッド、プロパティ、サブスクリプトへのアクセス
オーバーライドするメソッド
オーバーライドするプロパティ
プロパティのゲッタとセッタのオーバーライド
プロパティ監視者のオーバーライド
オーバーライドの防止
初期化
格納されたプロパティの初期値を設定
イニシャライザ
デフォルトのプロパティ値
初期化のカスタマイズ
初期化パラメータ
パラメータ名と引数ラベル
引数ラベルのないイニシャライザのパラメータ
Optional のプロパティ型
初期化中に定数プロパティへの代入
デフォルトのイニシャライザ
構造体型のためのメンバ化イニシャライザ
値型のイニシャライザデリゲート
クラスの継承と初期化
指定イニシャライザとコンビニエンスイニシャライザ
指定とコンビニエンスイニシャライザの構文
クラス型のイニシャライザデリゲート
二相の初期化
イニシャライザ継承とオーバーライド
自動イニシャライザの継承
指定とコンビニエンスイニシャライザの実際
失敗可能イニシャライザ
生の値を持つ列挙型のための失敗可能イニシャライザ
初期化失敗の伝播
失敗可能イニシャライザのオーバーライド
init! の失敗可能イニシャライザ
必須イニシャライザ
クロージャや関数でのデフォルトのプロパティ値設定
デイニシャライザ
デイニシャライザはどのように働くか
作動中のデイニシャライザ
Optional の連鎖
強制開封の代替としての Optional の連鎖
Optional の連鎖のモデルクラスの定義
Optional の連鎖を使用したプロパティへのアクセス
Optional の連鎖を通じてメソッドを呼び出す
Optional の連鎖を通じてサブスクリプトへのアクセス
Optional 型のサブスクリプトにアクセス
連鎖の複数レベルのリンク
optional の戻り値を持つメソッドでの連鎖
エラー処理
エラーの表現と Throw
エラーの処理
throw 関数を使用したエラーの伝播
Do-Catch を使用したエラー処理
エラー をOptional の値に変換
エラー伝播を無効に
クリーンアップアクションの指定
型キャスト
型キャストのためのクラス階層の定義
型のチェック
ダウンキャスト
Any と AnyObjecgt 用の型キャスティング
ネストした型
実際のネストした型
ネストした型への参照
拡張機能
拡張機能の構文
計算されたプロパティ
イニシャライザ
メソッド
変異インスタンスメソッド
サブスクリプト
ネストした型
プロトコル
プロトコルの構文
プロパティの要件
メソッドの要件
変異メソッドの要件
イニシャライザの要件
プロトコルイニシャライザ要件のクラス実装
失敗可能イニシャライザの要件
型としてのプロトコル
デリゲート
拡張機能を持つプロトコル準拠の追加
条件付きでプロトコルに準拠
拡張機能を持つプロトコルの採用を宣言
合成された実装を使用したプロトコルの採用
プロトコル型のコレクション
プロトコルの継承
クラス専用プロトコル
プロトコルの構成
プロトコル準拠の確認
Optional のプロトコル要件
プロトコル拡張機能
デフォルトの実装の提供
プロトコル拡張機能に制約を追加
ジェネリック(汎用)
汎用が解決する問題
汎用関数
型パラメータ
型パラメータの命名
汎用の型
汎用型の拡張
型の制約
型制約の構文
実際の型の制約
関連型
実際の関連型
既存の型を拡張して関連型を指定
関連型に制約を追加
関連型の制約でプロトコルを使用
汎用の Where 句
汎用の Where 句を含む拡張機能
文脈上の Where 句
関連型と汎用の Where 句
汎用のサブスクリプト
不透明な型
不透明な型が解決する問題
不透明な型を返す
不透明な型とプロトコル型の違い
自動参照カウント
どのように ARC は働くか
実際の ARC
クラスインスタンス間の強い循環参照
クラスインスタンス間の強い循環参照の解決
弱い参照
所有されていない参照
所有されていない Optional の参照
所有されていない参照と暗黙に開封された Optional のプロパティ
クロージャの強い循環参照
クロージャの強い循環参照の解決
キャプチャリストの定義
弱い参照と所有されていない参照
メモリの安全性
メモリへのアクセス競合の理解
メモリアクセスの特徴
In-Out パラメータへのアクセスの競合
メソッド内の Self へのアクセスの競合
プロパティへのアクセスの競合
アクセス制御
モジュールとソースファイル
アクセスレベル
アクセスレベルの基本指針
デフォルトのアクセスレベル
ターゲット一つのアプリのアクセスレベル
フレームワークのアクセスレベル
ユニットテストのターゲット用のアクセスレベル
アクセス制御の構文
カスタム型
タプル型
関数型
列挙型
生の値と関連する値
ネストした型
サブクラス化
定数、変数、プロパティ、およびサブスクリプト
ゲッタとセッタ
イニシャライザ
デフォルトのイニシャライザ
構造体型用のデフォルトメンバ化イニシャライザ
プロトコル
プロトコルの継承
プロトコルの準拠
拡張機能
拡張機能の private メンバ
汎用(ジェネリック)
型エイリアス
高度な演算子
ビット単位演算子
ビット単位の NOT 演算子
ビット単位の AND 演算子
ビット単位の OR 演算子
ビット単位の XOR 演算子
ビット単位の左と右シフト演算子
符号なし整数のシフト動作
符号付き整数のシフト動作
オーバーフロー演算子
値オーバーフロー
優先順位と結合性
演算子メソッド
接頭辞と接尾辞演算子
複合代入演算子
等価演算子
カスタム演算子
カスタム挿入辞演算子の優先順位
言語のガイド(Part III)
言語リファレンスについて
文法の読み方
語彙の構造
空白とコメント
識別子
キーワードと句読点
リテラル
整数リテラル
浮動小数点リテラル
文字列のリテラル
演算子
型
型注釈
型識別子
タプル型
関数型
エスケープしないクロージャの制限事項
配列型
辞書型
Optional の型
暗黙に開封された Optional の型
プロトコル構成の型
不透明型
メタタイプ型
Any 型
Self 型
型の継承句
型の推測
式
接頭辞式
Try 演算子
二項式
代入演算子
三項条件演算子
型キャスト演算子
一次式
リテラル式
Self 式
スーパークラス式
クロージャ式
キャプチャ・リスト
暗黙のメンバ式
括弧で囲まれた式
タプル式
ワイルドカード式
キーパス式
セレクタ式
キーパス文字列式
接尾辞の式
関数呼び出し式
イニシャライザ式
明示的なメンバ式
接尾辞の Self 式
サブスクリプト 式
強制値の式
Optional の連鎖式
文
ループ文
For-In 文
While 文
Repeat-While 文
分岐文
if 文
Guard 文
switch 文
switch 文は、網羅的でなければならない
将来の列挙型 case の切り替え
実行は暗黙的に case を Fall Through しない
ラベル付き文
制御転送文
break 文
continue 文
fallthrough 文
return 文
throw 文
defer 文
do 文
コンパイラ制御文
条件コンパイルブロック
行制御文
コンパイル時診断文
利用可能条件
宣言
トップレベルのコード
コードブロック
Import 宣言
定数の宣言
変数の宣言
格納された変数と格納された変数のプロパティ
計算された変数と計算されたプロパティ
格納された変数監視者とプロパティの監視者
型変数プロパティ
型エイリアス宣言
関数の宣言
パラメータ名
In-Out パラメータ
パラメータの特殊な種類
メソッドの特殊な種類
特別な名前のメソッド
Throw する関数とメソッド
Rethrow する関数とメソッド
Never Return (返さない) 関数
列挙型の宣言
任意の型の case を列挙
間接による列挙
生の値型の case を列挙
列挙型 case へのアクセス
構造体の宣言
クラスの宣言
プロトコルの宣言
プロトコル・プロパティ宣言
プロトコル・メソッド宣言
プロトコル・イニシャライザ宣言
プロトコル・サブスクリプト宣言
プロトコルに関連した型の宣言
イニシャライザ宣言
失敗可能イニシャライザ
デイニシャライザ宣言
拡張機能の宣言
条件付きの準拠
オーバーライドされた要件はいくつかの汎用コンテキストでは使用されない
プロトコル準拠性は冗長であってはならない
明示的な冗長性の解決
サブスクリプト宣言
型サブスクリプト宣言
演算子の宣言
優先順位グループ宣言
宣言修飾子
アクセス制御レベル
属性
宣言の属性
インターフェイスビルダーで使われる宣言属性
型の属性
Switch Case 属性
パターン
ワイルドカードパターン
識別子パターン
値結合パターン
タプルパターン
列挙型 case パターン
Optional のパターン
型キャストパターン
式のパターン
汎用パラメータと引数
汎用パラメータ句
汎用の where 句
汎用引数句
文法のまとめ
語彙の構造
型
式
文
宣言
属性
パターン
汎用パラメータと引数
マニュアルの変更履歴
変更履歴