この記事は株式会社アイエンターAdvent Calendar 2018の25日の記事です!
今回は空文字チェックについて学習したことをアウトプットしていきたいと思います。
きっかけ
案件でSwiftLintライブラリを使用し、導入後に生まれたエラーを修正するためにisEmpty
メソッドを使用しました。
まずそのエラーについて紹介いたします。
エラー詳細
配列に要素がないことを確認するコードを追加します。
if array.count > 0 { }
すると、以下のようなエラーが表示されました。
「要素が何もないことを確認する際はcount == 0よりもisEmptyを用いてチェックする」という内容です。
そもそもどうしてisEmpty`メソッドを使用することが推奨されるのでしょうか。
countとisEmpty
結果のみ報告すると、処理の速度が関係しているそうです。
([Swift] count == 0 より isEmpty を使うべき理由)
コードを書くときは、パフォーマンスも考慮して書けるようになりたいですね!
isEmpty == false と !isEmpty
さて、さらにswiftらしい書き方についてです。
冒頭に記載したエラーが出て、まず以下のように書き換えました。
if array.isEmpty == false { }
先輩にレビューしていただき、以下のように修正いたしました。
if !array.isEmpty { }
論理演算子を用いた書き方の方が非常にスッキリしましたね♬
####ちなみに・・・
isEmptyのtrue/false、どのような動きをするのか理解するまでに時間がかかりました。
今回の場合で考えてみると、array is Empty 「(日本語訳:)配列は空です」となりますので以下のように処理が通ります。
if array.isEmpty {
print("arrayの要素が何もない時に通る")
} else {
print("arrayの中身が空ではない時に通る")
コードを理解して処理を適切に追加していきます。
参考にした記事
https://qiita.com/a-beco/items/bf740ed9c8e4575e64b2
https://qiita.com/kagemiku/items/80e6d905dc0059c342b3