In Swift enumerations, what’s the difference between raw values and associated values?
Answer / 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 |
Which is better car baleno or swift?
How do I add a header in swift?
How does swift achieve multiple inheritance?
What is nested function in swift?
What is the characteristics of switch in swift?
Is swift written in c++?
Can structs inherit swift?
What are jsonencoder and jsondecoder?
What is $0 and $1 in swift?
How can we define a base class in swift?
Can you explain any three-shift pattern matching techniques?
What language is similar to swift?