【问题标题】:Spread operator in ElmElm 中的扩展运算符
【发布时间】:2019-06-07 03:58:53
【问题描述】:

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

我想要的看起来是这样的:(spread operator in JS)

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 中存档吗?

【问题讨论】:

    标签: list elm


    【解决方案1】:

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

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

    但如果您有一个列表,那么附加运算符++ 可能更合适:

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

    但是请注意,append 在列表上效率很低,尤其是与 cons 相比。缺点是 O(1),而附加是 O(n),请参阅 Why is appending to a list bad?。这对于小列表来说无关紧要,但如果您发现自己想要在大列表上使用 append,则可能需要重新考虑您的方法。

    【讨论】:

    • 如何判断一个列表是大还是小(相对于上述)?
    • 这完全取决于环境和限制。例如,无论您是只做一次,还是在另一个循环中,O(n),这将使整个算法O(n^2)。如有疑问,最好进行衡量。
    猜你喜欢
    • 1970-01-01
    • 2017-02-21
    • 2023-04-02
    • 1970-01-01
    • 1970-01-01
    • 2019-08-10
    • 2019-03-13
    • 2018-06-16
    • 2017-12-20
    相关资源
    最近更新 更多