Распространение оператора в Вязов - PullRequest
2 голосов
/ 07 июня 2019

Я хочу показать опции блока выбора из списка с двумя существующими вариантами.

То, что я хочу, выглядит так: (spread operator в 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?

1 Ответ

7 голосов
/ 07 июня 2019

Вы можете связать оператор cons, например:

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

Но если у вас есть список, то оператор добавления, ++, может быть более подходящим:

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

Обратите внимание, что добавление очень неэффективно в списках, особенно по сравнению с минусами.Минусы - O (1), а append - O (n), см. Почему добавление в список плохое? .Для небольших списков это несущественно, но вы можете пересмотреть свой подход, если захотите использовать добавление в большие списки.

...