Elm - Hồ sơ

Cấu trúc dữ liệu bản ghi trong Elm có thể được sử dụng để biểu diễn dữ liệu dưới dạng các cặp khóa-giá trị. Một bản ghi có thể được sử dụng để sắp xếp dữ liệu liên quan để cho phép dễ dàng truy cập và cập nhật dữ liệu. Bản ghi Elm tương tự như các đối tượng trong JavaScript. Các phần tử dữ liệu trong một bản ghi được gọi là trường.

Xác định bản ghi

Sử dụng cú pháp sau để xác định một bản ghi:

Cú pháp

record_name = {fieldname1 = value1, fieldname2 = value2....fieldnameN = valueN}

Một bản ghi có thể lưu trữ dữ liệu nhiều loại. Các tên trường trong bản ghi phải tuân theo các quy tắc chung để đặt tên cho một số nhận dạng Elm.

Truy cập các giá trị bản ghi

Sử dụng cú pháp sau để truy cập các trường riêng lẻ trong một bản ghi.

Cú pháp

record_name.fieldname

HOẶC LÀ

.fieldname record_name

Hình minh họa

Hãy thử những điều sau đây trong 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

Sử dụng Bản ghi với Danh sách

Một bản ghi có thể được lưu trữ bên trong một danh sách. Tất cả các giá trị trường của bản ghi phải cùng loại.

Cú pháp

list_name = [ {field_name1 = value1},{field_name1 = value2}]

HOẶC LÀ

list_name = [record_name1, record_name2, record_name3....record_nameN]

Hình minh họa

Hãy thử những điều sau trong 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 }

Cập nhật bản ghi

Các bản ghi là bất biến trong Elm. Khi một bản ghi được cập nhật, một bản ghi mới với các giá trị được cập nhật sẽ được trả về. Trường có thể giữ giá trị của một kiểu khác khi cập nhật bản ghi.

Cú pháp

{record_name | field_name1 = new_value1, field_name2 = new_value2,field_name3 = new_value3....field_nameN = new_valueN}

Hình minh họa

Hãy thử những điều sau trong 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

Hình minh họa

Ví dụ sau cập nhật nhiều trường của một bản ghi. Hãy thử những điều sau trong 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 }
>

Các loại bí danh

Loại bí danh xác định một lược đồ cho một bản ghi. Nói cách khác, bí danh kiểu xác định trường nào có thể lưu trữ bản ghi và kiểu giá trị mà các trường này có thể lưu trữ. Do đó, lập trình viên sẽ không mắc lỗi thiếu bất kỳ thuộc tính cụ thể nào trong khi gán giá trị.

Cú pháp

type alias alias_name = {field_name1:data_type,field_name2:data_type,....field_nameN:data_type}

Hình minh họa

Thực thi những điều sau trong 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
>

Bây giờ nếu bạn quên nhập vị trí và tuổi, câu lệnh trả về một hàm, có các tham số đầu vào cho các trường vị trí và tuổi.

> dev3 = Developer "Bhagavati"
<function> : String -> Int -> Repl.Developer
We can invoke the function as shown below and pass to it the values for location and age fields.
> dev3 "Pune" 25
{ name = "Bhagavati", location = "Pune", age = 25 } : Repl.Developer