2015-06-01 2 views
1

Когда я делаю словарь члена, назначение не компилируется:Swift словарь члена ошибки компиляция

struct MyClass { 
var lists = [String:Int](); 
init() {} 

func add() { 

    // this compiles 
    var x = [String:Int](); 
    x["y"] = 3; 

    // this gets the compiler error 'cannot assign to the result of this expression' 
    self.lists["y"] = 3; 
} 

Что это о членстве, нарушающем компиляции? Я не получаю эту ошибку, если я поместил эту строку в init() FWIW.

+2

Если вы хотите, чтобы ваша структура, чтобы быть в состоянии изменить его 'self' вы должны это сделать: http://stackoverflow.com/a/30477167/2227743 – Moritz

+0

Вы правы. Я добавил «mutating» перед «func add» и исправил его. –

ответ

2

Вам нужно добавить mutating из функции декларации, как это потому, что свойства только для чтения, если вы не указали, что ключевое слово в struct:

mutating func add() 
Смежные вопросы