Swift では、配列に要素が存在するかどうかをどのように確認すればよいでしょうか。Xcode には、、、または についての提案はなくcontain
、本をざっと検索しても何も見つかりません。これをどのように確認すればよいinclude
か、has
何かアイデアはありますか。インデックス番号を返すメソッドがあることは知っていますfind
が、Ruby の のようなブール値を返すメソッドはありますか#include?
。
必要なものの例:
var elements = [1,2,3,4,5]
if elements.contains(5) {
//do something
}
ベストアンサー1
スイフト2、3、4、5:
let elements = [1, 2, 3, 4, 5]
if elements.contains(5) {
print("yes")
}
contains()
プロトコル拡張メソッドであるSequenceType
(要素のシーケンス用Equatable
) であり、以前のリリースのようなグローバル メソッドではありません。
備考:
- この
contains()
方法では、シーケンス要素がEquatable
プロトコルを採用する必要がある。例えば、アンドリュースの答え。 - シーケンス要素が
NSObject
サブクラスのインスタンスである場合は、オーバーライドする必要がありますisEqual:
。Swift の NSObject サブクラス: hash と hashValue、isEqual と ==。 contains()
要素が等価である必要はなく、述語を引数として取る、より一般的な別の方法があります。例:Swift の配列にオブジェクトが存在するかどうかをテストするためのショートカットはありますか?。
Swift の古いバージョン:
let elements = [1,2,3,4,5]
if contains(elements, 5) {
println("yes")
}