Both Structure and Class can define property, method, subscript, initializers, can be extended and conform to a protocol.
Features only class have but structure don't have - Inheritance, TypeCasting, De-initializer, Reference Counting (allows more than one reference to a class instance)
example :
struct Resolution {
var width = 0
var height = 0
}
class VideoMode {
var resolution = Resolution()
var interlaced = false
var frameRate = 0.0
var name: String?
}
let someResolution = Resolution()
let someVideoMode = VideoMode()
Memberwise Initializers for Structure Types - All structures have an automatically generated memberwise initializer, which you can use to initialize the member properties of new structure instances.
Structures and Enumerations Are Value Types
A value type is a type whose value is copied when it’s assigned to a variable or constant, or when it’s passed to a function.
Integers, floating-point numbers, Booleans, strings, arrays and dictionaries—are value types in swift, and are implemented as structures behind the scenes.
Classes Are Reference Types. Reference types are not copied when they’re assigned to a variable or constant, or when they’re passed to a function.
classes are reference types, it’s possible for multiple constants and variables to refer to the same single instance of a class. Identity operator is used to check whether two constants or variables refer to the same single instance.
- Identical to (===)
- Not identical to (!==)
Top comments (0)