私は、このシミュレーションがあります。すべての項目を知らなくても、レコードの項目を削除し
init : (Model, Cmd Msg)
init = ({ dog = List Dog }, Cmd.none)
type alias Dog =
{ name : String
, age : Int
, price : Float
, extra = List Extra
}
type alias Extra =
{ allergies : List String
, wishes : List String
}
[{ name = "Hot"
, age = 1
, price = 300.5
, extra = [{...}]
},
{ name = "Dog"
, age = 3
, price = 150.0
, extra = [{...}]
}]
をそして私は、コードの決定部分に、犬の唯一の「エキストラ」を削除する:
[{ name = "Hot"
, age = 1
, price = 300.5
},
{ name = "Dog"
, age = 3
, price = 150.0
}]
Iこれを行うには、リスト全体をマッピングし、「余分な」オカレンスを削除して新しいリストを生成します。
removeExtraOfDogs dogList =
(dogList |> List.map (\dog ->
{ name = dog.name
, age = dog.age
, price = dog.price
}
))
タイプに何の変数があるかを知らなくても、余分なものを渡すだけでダイナミックになります。
なぜフィールドを削除しようとしていますか?なぜ、 '{name、age、price} 'で新しい型エイリアスを作るだけではないのですか? – naomik
@naomik、私が開発しているプロジェクトでは、1つまたは2つのレコード項目を取るのと同じことをする必要がある+50種類があります。理由:CSV形式でエクスポートする必要があり、「余分な」ものは必要ありません。 –
ElmでJsonのエンコード/デコードを読むことをお勧めします。 Csvをエンコードするのにも同じルールが適用されます - 私はJsonについて読んでほしい。なぜなら、より適切な検索結果を見つける可能性が高いからです。 – naomik