Вы также можете определить Weight
структуру, которая возвращает metric
или imperial
на основе запроса.
struct Weight {
metric: String
imperial: String
init(_ metric: String, _ imperial: String) {
self.metric = metric
self.imperial = imperial
}
}
Затем, когда вы определите Animal
:
let cat = Animal(
name: "Cat",
weight: Weight("1kg", "2.2 lbs")
)
Затем, когда вы спросите о весе:
let weight = metric ? cat.weight.metric : cat.weight.imperial
Вам нужно установить оба значения - metric
и imperial
- если вы хотите иметь возможность свободно переключаться между ними.(В качестве альтернативы, если это ваша проблема в буквальном смысле, вы можете определить только метрический вес, а затем вычислять имперский вес всякий раз, когда он запрашивается.)