Swift
Data
value types
enums
can have initializers, can be extended and can conform to protocols
Swift enums do NOT get default integer values
structs
auto-gen’ed memberwise initializers (not so in classes)
No ref counting, since value type
reference types
classes
very similar to structs (but ref type)
inheritance
Ref count for memory management
Swift Diff: dot syntax allows us to directly set sub-properties without intermediate assignment (reduces instance creation and malloc)
Rookie Question: What is the key deciding factor between creating a struct vs. class or class vs. struc?