榆木中的价差运算符

时间:2019-06-07 03:58:53

标签: list elm

我想从具有2个现有选项的列表中显示选择框的选项。

我想要的东西看起来像这样:(JS中的spread operator

select
  [ class "js-wlSize" ]
  [ option [ disabled True ] [ text "Choose size" ]
  , option [] [ text "Default size" ]
    ...( List.map (\s -> option [ value s ] [ text s] ) myListData )
  ]

我也尝试使用( :: ),但是它适用于1个默认选项。我不知道如何使用2个或更多。

有人知道如何在Elm中存档吗?

1 个答案:

答案 0 :(得分:7)

您可以链接cons运算符,例如:

1 :: 2 :: [ 3, 4, 5 ]

但是,如果您有列表,则追加操作符++可能更合适:

[ 1, 2 ] ++ [ 3, 4, 5 ]

但是请注意,追加在列表上的效率很低,尤其是与缺点相比。 Cons为O(1),而append为O(n),请参见Why is appending to a list bad?。对于小型列表而言,这是微不足道的,但是如果您发现自己想在大型列表上使用append,则可能需要重新考虑自己的方法。