In Swift enumerations, what’s the difference between raw values and associated values?
Answer Posted / iosraj
Raw values are used to associate constant (literal) values to enum cases. The value type is part of the enum type, and each enum case must specify a unique raw value (duplicate values are not allowed).
The following example shows an enum with raw values of type Int:
enum IntEnum : Int {
case ONE = 1
case TWO = 2
case THREE = 3
}
An enum value can be converted to its raw value by using the rawValue property:
var enumVar: IntEnum = IntEnum.TWO
var rawValue: Int = enumVar.rawValue
A raw value can be converted to an enum instance by using a dedicated initializer:
var enumVar: IntEnum? = IntEnum(rawValue: 1)
Associated values are used to associate arbitrary data to a specific enum case. Each enum case can have zero or more associated values, declared as a tuple in the case definition:
enum AssociatedEnum {
case EMPTY
case WITH_INT(value: Int)
case WITH_TUPLE(value: Int, text: String, data: [Float])
}
Whereas the type(s) associated to a case are part of the enum declaration, the associated value(s) are instance specific, meaning that an enum case can have different associated values for different enum instances.
| Is This Answer Correct ? | 2 Yes | 0 No |
Post New Answer View All Answers
What is the difference between swift and ‘objective-c’ language?
What is an attribute in swift?
Is swift a good language to learn?
Is swift a good language?
Explain enum in swift.
What is base class in swift?
How proficient are you in objective-c and swift? Can you briefly describe their differences?
Is apple using swift?
What are the most important features of swift?
What type of literals does swift language have?
Is it worth learning swift 2019?
How can you prioritize the usability of the demand process?
How long does a swift transfer take?
What is the significance of “?” In swift?
What is the use of static keyword in swift?