なえT備忘録

何の参考にもならないかもしれませんが、いつかは参考になるようにします

Swift メソッドの書き方、オプショナルの意味

文法もうろ覚えの状態で、本読みながらアプリを作っています。

触っている上で覚えておきたい事を、ソースコードのコメント欄に書きがち。

でも書きすぎてソースコードの視認性がめちゃくちゃ悪くなりました。

 

テキスト読めばいつでも再確認できるけど、自分の言葉で書き記すことで

本当に理解しているか/後から見て、本当に理解できていたかどうかが確認できるぞ。

 

たぶん間違っているかもしれないけど、自分なりの理解を書き記しておきます...

※間違ってるとわかったら追記で直していきます。おとなはウソつきではないのです。まちがいをするだけなのです...

 

 

/*

 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

www.sejuku.net