2016-03-29 2 views
0

Основной вопрос. Если у меня есть следующие:Swift: вызов элемента набора с переменной?

let unitPrice = (fighter: 15, cleric: 20, mage: 25) 
var unitType = "cleric" 

Как вызвать unitPrice.unitType

Так что она равна unitPrice.cleric (20)?

+0

Если я прав, вы не хотите, чтобы добавить unitType внутри кортежа справа? – ridvankucuk

+0

Это правильно, я этого не делаю. Я хочу вызвать unitPrice.cleric (например), используя переменную вместо термина «cleric». – mdamkani

+0

Попробуйте извлечь значение из своего индекса. Индекс начинается с нуля. e: g unitPrice.1 –

ответ

2

Похоже, что вы действительно ищете словарь, а не кортеж. Попробуйте следующее:

// Using an enum instead of a String ensures there are no errors from spelling mistakes. 
enum UnitType { 
    case Fighter 
    case Cleric 
    case Mage 
} 

let unitPrice: [UnitType : Int] = [.Fighter : 15, .Cleric : 20, .Mage : 25] 

// Retrieving the price of a Cleric... 
let type = UnitType.Cleric 
if let price = unitPrice[type] { 
    print(price) // 20 
} 

 Смежные вопросы

  • Нет связанных вопросов^_^