Model
ist eine Art Alias für einen Datensatz zu erwarten, die einen einzelnen int-Wert dieFace
genannt hat.
Es gibt ein paar Möglichkeiten, um einen Wert dieses Typs zu erstellen:
Model 1 -- treats Model as a function with a single parameter
{ dieFace = 1 } -- creates a record that happens to coincide with the Model alias
Die seltsame Syntax, die Sie in { model | dieFace = 1 }
sehen Kurz Hand ist, einen neuen Wert für die Erstellung eines bestehenden Rekordwert basiert weg, aber zu ändern ein oder mehrere Felder. Es macht vielleicht nicht viel Sinn, wenn Ihre Satzart ein einzelnes Feld hat also lassen Sie uns ein willkürliches Beispiel erstellen:
type alias ColoredDie = { dieFace: Int, color: String }
Sie können in der Elm REPL rumspielen und vielleicht wird dies dazu beitragen, es Sinn machen:
> blue3 = ColoredDie 3 "blue"
{ dieFace = 3, color = "blue" } : Repl.ColoredDie
> red3 = { blue3 | color = "red" }
{ dieFace = 3, color = "red" } : { dieFace : Int, color : String }
> red4 = { red3 | dieFace = 4 }
{ dieFace = 4, color = "red" } : { color : String, dieFace : number }
> green6 = { red4 | color = "green", dieFace = 6 }
{ dieFace = 6, color = "green" } : { color : String, dieFace : number }
Sie können read up on Elm's record syntax here.
Dank Tschad, beste Antwort, die ich seit langer Zeit bekam, und sehr schnell. – swelet