Swift5の文字列検索のcontains関数で、以下のコードを試したところエラーが発生した。

let str = "あいうえお"
if str.contains("あい") {
    print("見つかりました")
}

error: cannot convert value of type ‘String’ to expected argument type ‘String.Element’ (aka ‘Character’)

何が問題かというと、どうやらcontainsの引数ではデフォルトでCharacter型、つまり1つの文字しか引数として受け付けていないようで、上記のような複数からなる文字列の検索をおこなおうとするとエラーが発生するというわけだ。

解決策

コードの先頭に下記の1行を追加するだけで解決した。

import Foundation

Foundationのほか、UIKitやSwiftUIでも何でも良いのだが、とにかく上位レベルのフレームワークをインポートするだけでエラーが出なくなった。

このエラーで結果1時間近くハマったので、今後もPlaygroundなどでコードを書く時は忘れがちなので特に注意が必要だ。