文法もうろ覚えの状態で、本読みながらアプリを作っています。
触っている上で覚えておきたい事を、ソースコードのコメント欄に書きがち。
でも書きすぎてソースコードの視認性がめちゃくちゃ悪くなりました。
テキスト読めばいつでも再確認できるけど、自分の言葉で書き記すことで
本当に理解しているか/後から見て、本当に理解できていたかどうかが確認できるぞ。
たぶん間違っているかもしれないけど、自分なりの理解を書き記しておきます...
※間違ってるとわかったら追記で直していきます。おとなはウソつきではないのです。まちがいをするだけなのです...
/*
Tips Swift メソッド(関数
)の書き方
func hogeHoge(_ huga:Int hogo:Str) -> Bool {
return =
}
hogeHoge が メソッド名
_ が ラベル、設定しない場合は"_"とかく ラベルによって引数を保管できる?
huga が 第一引数 :Int が第一引数の型指定
hogo が 第二引数 :Str が第二引数の型指定
-> Bool が 戻り値の型宣言 この肩の通りの戻り値がこないとエラーおこす
return = で代入される値が戻り値になる
*/
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
/*
Tips オプショナル
通常、宣言された定数、変数はnilを許容しない
nilを許容するには 型宣言の後ろに?をつけてオプショナル型にする必要がある
オプショナル型は値が空の場合はnilをだす
ただし、オプショナル型の値は非オプショナル型の値と演算できない
この場合、オプショナル型の定数/変数に!をつけることで、演算可能な状態にできる
これをアンラップという ただしこうするとnilを許容できなくなるので、値が空だとエラーになる
オプショナル型は条件式でも使える。要は値が入ってたらこっち、入ってなかったらあっち、と処理を分けられる
nilのときはFalse それ以外はTrueを返すIf分をつかえばいい
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
var num : Int? //このときnumは空
if let sum = num {
print("sumは\(sum)です")
} else {
print("値が設定されていません")
}
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
こう書くことで、下記3件のメリットが生まれる。これをバインディングとよぶ
①numがnilかどうか確認できる(宣言時はnilの変数が、処理の途中で値が入ったか確認できる)
②numがnilだったときの例外処理を行える
③numをsumという値に代入し、使用している変数を置き換えることができる(これにより、numはnilでないと可視化できる)
他、型宣言時に?でなく!を使うことで、アンラップ不要で非オプショナル型と演算できるようになる。(厳密には演算時に勝手にアンラップされる)
宣言時はnilだが、使うときには値が格納されていることがわかっている場合は、こちらを選んだ方がいい。 これを暗黙的なオプショナル型 と呼ぶ。
なお、暗黙的なオプショナル型でも、値がnilでアンラップが必要なとき、そのまま使用するとエラーになってしまう。
*/
↑↑オプショナルはサムライエンジニアの記事を参照しました。ありがとうサムライエンジニア。フォーエバーサムライエンジニア。でも金勿体無いからスクールはNG