2015年1月11日日曜日

Swift言語の簡単な特徴メモ

Swift

ブロック
中括弧で表現{}

型の記述
スタイル:先頭は大文字
指定:変数の後ろにコロンと合わせて記述する。あくまで型推論の補助というポリシーだとわかる。

配列.array
宣言;大カッコ
空配列は型の指定が必要:Pythonよりは型安全だが、型の指定方法は[型]
配列の要素アクセス:大カッコとindex指定
配列の要素入れかえ:大カッコとindex指定
配列の要素挿入:insertとindex指定、+=で最後に要素もしくは配列を連結
配列の要素削除:removeAtIndex(atIndex:)とindex指定
配列の最後の要素を削除:removeLast(要素アクセスと併用でPythonのpop)
配列の要素全削除:removeAll
配列の要素選択:Pythonのrangeにあたる機能、[m...n]でmからn-1までの要素を取得などのrange演算子が使える
配列の代入は完全なlazyコピー
letはimmutable、varはmutable
lazyコピーの効率:2015/1/10時点ではまだissue状態だが、概ね効率的。ただし、大量の再代入は避けるべき。
functionへ参照を渡す処理の場合:inoutパラメータを使用する。再起処理を関数呼び出しで実行する場合には注意。関数の呼び出し側で参照を知らせる&を使用する。
Cocoaフレームワークへの変換:as

ハッシュテーブル.dictionary
宣言:大カッコにkeyとvalueを:で分離
ハッシュテーブルのvalueアクセス:大カッコとkey
ハッシュテーブルのレコードの削除:nil代入
順序:保証しない
Cocoaフレームワークへの変換:as

演算子
比較演算子:極めて一般的な記号
論理演算子:極めて一般的な記号(powを表現する記号は無し)
for-in:一般的、range演算子を使用可能
条件付きfor:小括弧を省略するスタイル、型推論可能
while:小括弧を省略するスタイル
if:小括弧を省略するスタイル
switch:小括弧を省略するスタイル、break不要

関数.function
宣言:func
引数:引数名: 型(代入時の型にも注意)
可変引数:型...で表現
戻り値の分離:-> 型
外部引数名:引数変数の前に名前を指定
外部引数名の関数呼び出し:呼び出し時は外部引数名の指定が必須
ネスト:可能。内側の関数は外側の関数ブロックがアクセス空間

クロージャ.closuer
存在:ある。functionはclosuerの特別な形式。
ボディの分離:-> 戻り値型 in
ボディの分離の省略:
よく使われるケース:コールバックするためのHandler

構造体.structure
宣言:struct
型:値型(value type)
プロパティの型推論:可能
プロパティへのアクセス:ドット
ARC(Auto Reference Count: 参照カウント型のメモリ管理機能)対象外

クラス.class
宣言;class
型:参照型(reference type)
継承:有り。宣言時に:(コロン)で区切ってsuper classを記述する
オーバーライド:継承後のメソッドではsuper必須。
型キャスト:有り
ARC(Auto Reference Count: 参照カウント型のメモリ管理機能)対象

メソッド.method
タイプ:インスタンス、static有り

包括型.Any
包括クラス型.AnyObject、Cocoaフレームワーク(主にNSArrayとNSMutableArray)への変換

ナル表現
nil

その他の表現
オプショナル型、ラップ状態の表現:?、nilチェックに使えるので楽

アンラップ表現:!

0 件のコメント:

コメントを投稿