v3 · Activity 6 of 9 · dictionaries · field-access · 9 min Runs here
{name="Lamp", quantity=2} maps named keys to values. item.name and item["name"] refer to the same key.
Named fields are not ordered positions. #item is not the number of fields in a dictionary.
itemLabel(item) returns name followed by ": " and quantity. If quantity is absent, display zero. Every item has a name. Keep the final return shown in the starter so the checker can call or inspect your result. The starter deliberately contains an error; a failing run is useful evidence while you repair it.
Interface: itemLabel(item:{name:string,quantity:number?}) -> string
| Input | Expected |
|---|---|
Stocked item{ name = "Lamp", quantity = 2 } | "Lamp: 2" |
Missing quantity{ name = "Brush" } | "Brush: 0" |
local item = { name = "Lamp", quantity = 2 }
return item.name .. ": " .. tostring(item.quantity)Named fields make the meaning of each value clear. The display becomes Lamp: 2.
New syntax: .name, ["name"], named table fields
{name="Lamp", quantity=2} maps named keys to values. item.name and item["name"] refer to the same key.
Named fields are not ordered positions. #item is not the number of fields in a dictionary.
Field names are case sensitive. item.Quantity and item.quantity are different keys. If quantity is missing, this exercise treats it as zero.
Select a word or symbol in this authored example. Your editor draft stays unchanged.
item name , quantity 2
item.name item.quantityThis is a private experiment copy. It does not replace your answer or complete the activity.
These inputs apply when your scratchpad returns the function described by the activity interface.
Your output will appear here.
Replace this code with the starter? Download your draft to keep a copy.
Your output will appear here.
Sign in with RoCreators to save private progress across devices. Community verification is separate.