· Core Type
A struct is the kind for named fields. properties fixes each field. The struct is closed, so unlisted keys are rejected, unless it adds a values tail. A map has no named fields: every value matches one values schema.
A struct is a map whose keys are known in advance. Its struct schema lists them under properties, one property per field: the field's value schema, whether it is required, and a description. It is closed unless it also gives values, the schema every extra key must satisfy. In the data model a struct is still a map. The difference lives in the schema: a form knows which fields to show, a validator knows which keys are stray, and a generated type gets named members.
Use a struct when the fields have names and meanings of their own: a person has a name and an age, and a Change has a genesis and deps. Use a map when the keys are data, such as word to count or key to value. The reference examples are Example: Person for a struct and Example: Counts for a map.
See also
map: keys that are data.
Struct schema: the schema form of a struct.
property: one field of a struct.
Closed map: what closed means.
Data model: all the kinds.
Do you like what you are reading? Subscribe to receive updates.
Unsubscribe anytime