2016-02-23 3 views
3

Принимая ниже перечисление, напримерUpdate/изменить RawValue из перечисления в Swift

enum Name : String { 

    case Me = "Prakash" 
    case You = "Raman" 

} 

Могу ли я сделать следующие действия

Измените необработанное значение одного «дела» к чему-то еще.

Name.Me = "Prak" 

Добавить новый случай в ENUM

Name.Last = "Benjamin" 

Спасибо!

ответ

5

Короткий ответ: Нет, вы не можете.

Типы перечислений оцениваются во время компиляции.
Невозможно изменить исходные значения и не добавлять случаи во время выполнения.

Единственное динамическое поведение - использование связанных значений.

Ссылка: Swift Language Guide: Enumerations

2

Нет, вы не можете. Вместо этого вы можете переопределить ваше перечисление, чтобы содержать связанные значения вместо необработанных значений.

enum Name { 
    case Me(String) 
    case You(String) 
    case Last(String) 
} 

var me = Name.Me("Prakash") 
print(me) 
me = .You("Raman") 
print(me) 
me = .Last("Singh") 
print(me) 
+0

Ah - ну, я думаю, это решает одну его часть. И я мог бы создать больше «случаев» –

+1

Вы не можете создавать новые случаи перечисления, но вы можете использовать случай Последнего (String) для переноса разных значений. Вы не можете создать совершенно новый случай, например case Middle (String). Вы должны заранее определить все случаи, а затем связать с ним разные значения. –

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