Skip to content

[REQ][SWIFT5] Readonly properties on struct models #6046

@iliaskarim

Description

@iliaskarim

Is your feature request related to a problem? Please describe.

Structs support immutability after initialization. Immutable data types, particularly value types like structs, encourage functional programming practices. By reducing shared mutable state inherit in objects with mutable properties, using immutable value types makes it less likely that UI appears out of sync with an application's data.

Describe the solution you'd like

Swift4/5 structs, when built without Objective-C compatibility, rather than declaring their properties with the var keyword, can use private(set) var keywords to make them only be mutated by the struct's initializer.

This solution could be enabled through an additional property that defaults to false.

Describe alternatives you've considered

The let keyword for properties on structs cannot be combined with default values. So, to keep the syntax consistent between properties that have default values and those that don't, use private(set) var instead.

Additional context

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions