class A
にはEquatable
を適用するような要素がないのでobject同士の比較ができないのですが、このようなA
の配列array
からA.type == .fuga
な要素の最終インデックスをダイレクトに取得する方法はありますか?
swift
1 2enum Type { 3 case hoge 4 case fuga 5} 6 7class A { 8 9 var type: Type 10 11 init(_ type: Type) { 12 self.type = type 13 } 14} 15 16var array = [A]() 17 18array = [A(.hoge), A(.fuga), A(.hoge), A(.fuga), A(.hoge)] 19
現状、forEach
とenumurated
をつかって最終インデックスを取得するしかないのかな?と思ってます。
swift
1var indexes = [Int]() 2 3array.enumerated().forEach { if ($0.element.type == .fuga) { indexes.append($0.offset) } } 4 5print(indexes.last as Any) 6
備忘録
swift
1let lastIndex: Int? = array.lastIndex(where: { $0.type == .fuga })
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
退会済みユーザー
2020/04/22 08:07 編集
2020/04/22 14:31
退会済みユーザー
2020/04/23 04:01
2020/04/23 06:10
退会済みユーザー
2020/04/23 06:30