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 are type methods in swift?
Can you explain completion handler?
Explain core data.
What is a delegate in swift?
Is swift a good language?
Explain some common features of protocols & superclasses.
What is memory leak in swift?
What is mvvm in swift?
What is atomic swift?
What is forced unwrapping?
How does a swift transfer work?
What are the different control transfer statements used in swift?
What is dynamic dispatch swift?
How do I create a bridge header in swift 4?
Explain what is half-open range operator?