When choosing between struct and class in Swift, you consider semantics, performance, mutability and design intent. /n/n Use a `struct` when you want value-type semantics: the data is relatively simple, you don't need inheritance, identity, shared mutable state or Objective-C interop. Structs provide safer copying, fewer memory pitfalls and often better performance. /n/n Use a `class` when you need reference semantics: when instances need identity (two references should refer to the same object), when you need inheritance, or when interoperation with Objective-C APIs is required. You also consider memory impact: classes use ARC and reference counting overhead. Apple recommends using struct by default and classes only when necessary.