Структура данных записи в Elm может использоваться для представления данных в виде пар ключ-значение. Запись может быть использована для организации связанных данных, чтобы обеспечить легкий доступ и обновление данных. Записи вяза похожи на объекты в JavaScript. Элементы данных в записи называются полями.
Определение записи
Используйте следующий синтаксис для определения записи —
Синтаксис
record_name = {fieldname1 = value1, fieldname2 = value2....fieldnameN = valueN}
Запись может хранить данные нескольких типов. Имена полей в записи должны соответствовать общим правилам именования идентификатора Elm.
Доступ к значениям записи
Используйте следующий синтаксис для доступа к отдельным полям в записи.
Синтаксис
record_name.fieldname
ИЛИ ЖЕ
.fieldname record_name
иллюстрация
Попробуйте следующее в Elm REPL —
> company = {name="TutorialsPoint",rating=4.5} { name = "TutorialsPoint", rating = 4.5 } : { name : String, rating : Float } > company.name "TutorialsPoint" : String > .rating company 4.5 : Float
Использование записи со списком
Запись может быть сохранена в списке. Все значения полей записи должны быть одного типа.
Синтаксис
list_name = [ {field_name1 = value1},{field_name1 = value2}]
ИЛИ ЖЕ
list_name = [record_name1, record_name2, record_name3....record_nameN]
иллюстрация
Попробуйте следующее в Elm REPL —
> [{name = "Mohtashim"},{name = "kannan"}] [{ name = "Mohtashim" },{ name = "kannan" }] : List { name : String } > record1 = {name = "FirstRecord"} { name = "FirstRecord" } : { name : String } > record2 = {name = "SecondRecord"} { name = "SecondRecord" } : { name : String } > recordList = [record1,record2] [{ name = "FirstRecord" },{ name = "SecondRecord" }] : List { name : String }
Обновить запись
Записи вяза неизменны. Когда запись обновляется, возвращается новая запись с обновленными значениями. Поле может содержать значение другого типа при обновлении записи.
Синтаксис
{record_name | field_name1 = new_value1, field_name2 = new_value2,field_name3 = new_value3....field_nameN = new_valueN}
иллюстрация
Попробуйте следующее в Elm REPL —
> record1 = {name="FirstRecord"} { name = "FirstRecord" } : { name : String } > record1_updated = {record1 | name = "FirstRecordUpdate"} { name = "FirstRecordUpdate" } : { name : String } > record1 { name = "FirstRecord" } : { name : String } > record1 == record1_updated False : Bool
иллюстрация
В следующем примере обновляются несколько полей записи. Попробуйте следующее в Elm REPL —
> record3 = {a = 1,b = 2,c = 3,d = 4,e = 5} { a = 1, b = 2, c = 3, d = 4, e = 5 } : { a : number, b : number1, c : number2, d : number3, e : number4 } > record4 = {record3 | d=400 ,e=500} { a = 1, b = 2, c = 3, d = 400, e = 500 } : { a : number2, b : number3, c : number4, d : number, e : number1 } >
Типы псевдоним
Псевдоним типа определяет схему для записи. Другими словами, псевдоним типа определяет, какие поля могут хранить записи, и тип значения, которое эти поля могут хранить. Таким образом, программист не допустит ошибки при пропуске какого-либо определенного атрибута при назначении значений.
Синтаксис
type alias alias_name = {field_name1:data_type,field_name2:data_type,....field_nameN:data_type}
иллюстрация
Выполните следующее в Elm REPL —
> type alias Developer = { name:String,location:String,age:Int} > dev1 = Developer "kannan" "Mumbai" 20 { name = "kannan", location = "Mumbai", age = 20 } : Repl.Developer > dev2 = Developer "mohtashim" "hyderabad" 20 { name = "mohtashim", location = "hyderabad", age = 20 } : Repl.Developer >
Теперь, если вы забыли ввести местоположение и возраст, оператор возвращает функцию, которая имеет входные параметры для полей местоположения и возраста.