Что делает оператор pipe `|` в случае выражения elm-lang? - PullRequest
8 голосов
/ 30 мая 2020

У меня есть следующий фрагмент кода в моем коде Elm:

type alias Model =
  { content : String
  }


update : Msg -> Model -> Model
update msg model =
  case msg of
    Change newContent ->
      { model | content = newContent }

Что делает { model | content = newContent }? Присваивает (привязывает) значение newContent к model, а также content? Поэтому там стоит оператор |?

Ответы [ 2 ]

13 голосов
/ 30 мая 2020

Канал не является частью выражения case. Это синтаксис обновления записи, как описано здесь: https://elm-lang.org/docs/records#updating -records .

{ model | content = newContent }

присваивает значение newContent полю content в записи model.

8 голосов
/ 31 мая 2020

Считать | как «с».

{ model 'with' content (set to) = newContent }
...