見出し画像

【Swift5】Swiftにおける_(アンダースコア)の役割を調べてみた

はじめに

私が記事を追加で書く必要がないぐらい素晴らしい記事があったので勉強しました。そして簡単にまとめてみます。

Swiftでとまどった「_」_アンダースコア_と「_0_0_0」|NEWS|株式会社INDETAIL(インディテール)

パターン1:変数としてのアンダースコア

戻り値を利用しない場合にこちらのアンダースコアで宣言すれば良さそうです。

逆にコード例で戻り値を利用する場合は、strなど変数名を宣言してあげれば戻り値を利用することができます。

パターン2:引数としてのアンダースコア

こちらがかなり気になっていたんですよね。

どうやらメソッド(引数アンダースコア付)を呼び出す際に省略可能という意味だそうです。必ずしも引数が必要ではない場合は、nilをセットするのではなくアンダースコアで記載して、何も引数に渡さないでメソッドを呼び出すのが良さそうです。

パターン3:戻り値を利用しないアンダースコア

正直理解は浅いですが、パターン1と同じように戻り値を利用しない場合はアンダースコアで書けば良さそうです

Enumのジェネリクス型での宣言についても調べました。

Swift1_2でenumにジェネリクス使ってその型を束縛できないって言ってるやつの意味が分かった_-_まーぽんって誰がつけたの?

エラーハンドリングだとイメージつきやすいですね。
成功時はStringを引数として要求されるが、失敗時はError型を利用するというよく考えられる状況でEnumでジェネリクス型を利用します。

上記URLでジェネリクス型を使わない場合がかなり面倒な記述になっているので利用する利点は間違いなくあります。

たとえば、上記Enumだとして、
成功時のStringを使わない部分だとすれば、caseを書く際に_で引数は利用しないって意味でもベストな記述だと思います。

いいなと思ったら応援しよう!