structによって作成されたオブジェクトを検索したいと思います。structによって作成されたオブジェクトを検索する
これらは私たちのオブジェクトであると仮定しましょうCandy
構造体。
「Lollipop」要素のカテゴリを2つの配列を作成せずにインデックスで見つけることはできますか?
structによって作成されたオブジェクトを検索したいと思います。structによって作成されたオブジェクトを検索する
これらは私たちのオブジェクトであると仮定しましょうCandy
構造体。
「Lollipop」要素のカテゴリを2つの配列を作成せずにインデックスで見つけることはできますか?
ただ、これを行動で
candies.filter { $0.name == "Lollipop" }
を:
13> struct Candy {
14. let cat: String
15. let name: String
16. }
17> var candies = [
18. Candy (cat: "Hard", name: "Lollipop"),
19. Candy (cat: "Hard", name: "Jaw Breaker")
20. ]
candies: [Candy] = 2 values {
[0] = {
cat = "Hard"
name = "Lollipop"
}
[1] = {
cat = "Hard"
name = "Jaw Breaker"
}
}
21> candies.first { $0.name == "Lollipop" }
$R1: Candy? = (cat = "Hard", name = "Lollipop")
22> candies.filter { $0.name == "Lollipop" }
$R2: [Candy] = 1 value {
[0] = {
cat = "Hard"
name = "Lollipop"
}
}
あなたはこの試みることができる:あなたは複数の "ロリポップ" があると予想される場合は、
candies.first { $0.name == "Lollipop" }
:
if let found = find(lazy(array).map({ $0.name }), "Foo") {
let obj = array[found]
}
申し訳ありませんが、これはいくつかの古いスピーディーでした。 candies.first {$ 0.name == "Candyname"}はこのトリックを行うべきです。 –
これはスイフト1でしたか?私はそれがだと思ったが、私はそれを認識しなかった、確かではなかった。この構文は理想的ではありませんでした。 :) – Moritz
スウィフト3はそれをさらに良くするでしょう;) –
あなたの 'candies.first {$ 0.name ==" Lollipop "}'はとてもクールです。 Swift 3では、 '.first'は配列内の最初のオブジェクトの唯一のプロパティです。このような述語を受け入れるメソッドはありません。言及する価値がある、IMO。 – Moritz