投稿

7月, 2016の投稿を表示しています

詳解Swift改訂版買いました

詳解Swift改訂版を買いました。Objective-C版も持っています。Objective-C版に比べて推敲が甘いかなと感じる部分が特に最後の方で多かったです。版を重ねて修正が加わるといいです。以下、自分用のメモ。構造体 イニシャライザ内でメソッドを呼ぶのは初期値設定が全部済んでから。
構造体の内部で別の構造体を定義出来る。
構造体の内部で、typeエイリアスを使って、別名を与えることが出来る。(メリット?)
タイププロパティの値を変更するインスタンスメソッドにはmutatingは不要。
タイププロパティの初期化のための式は値が必要とされた時に初めて評価される。
didSet WillSetはinit()内での設定では呼ばれ無い。didSetで値を設定しても再帰的に呼ばれることはない。
オプショナル オプショナル==nilはnilかどうか
オプショナル==非オプショナルは中身を比べることが出来る
if letのほかにif varもある
readLineは標準入力
??の右はオプショナルでもいい。??は連鎖できる。配列 配列を反対にするreverse()というメソッドがある。String Characterの配列からStringインスタンスを作るinitメソッドがある
UnicodeScalarにはvalueプロパティがあって値を取り出せる辞書 新規はdict[a] = aaa
削除はdict[b] = nil
updateは更新、ただしもとからない場合は作成しない。Tuple let aTuple = (1, 2, 3)
let (a, b, c) = aTuple //これが出来る
let (aa, _, _) = aTuple //使わないときは_が使える
値が一つだけのTupleはその値だけと変わらない
要素が一つもないことを()で表現。Voidは()の別名
違うキーワードのTuple間の代入は無理。型が同じでも。一度キーワードなしにキャストすればOK
キーワード付きのタプルの代入では順番が違っていてもキーワード毎に要素が代入される。キーワードがない部分は順番通りに代入される。
タプルにTypealiasでなまえをつけることができる。
Switch オプショナル付きのタプルを扱える
switch a { case (0, b?): break }のように使う。Enum …