2014-07-14 9 views

Odpowiedz

8

bez więcej kodu, możemy się tylko domyślać, co stało

brzmi jak robisz coś takiego

func addCard(_ myCardArray: [Card]) -> [Card] { 
    let myCard = Card() 
    myCardArray.append(myCard) 
    return myCardArray 
} 

problem polega na tym, że myCardArray jest niezmienna, a komunikat o błędzie mówi, nie można go zmodyfikować

można zadeklarować myCardArray zmienny korzystanie var

func addCard(var _ myCardArray: [Card]) -> [Card] { 
    let myCard = Card() 
    myCardArray.append(myCard) 
    return myCardArray 
} 

lub utwórz zmienny kopię

func addCard(_ myCardArray: [Card]) -> [Card] { 
    let myCard = Card() 
    var mutableMyCardArray = myCardArray 
    mutableMyCardArray.append(myCard) 
    return mutableMyCardArray 
} 
+0

Wielkie dzięki, Bryan! Dodanie działającego słowa kluczowego var. Zastanawiam się, dlaczego tak jest, nie pamiętam, aby kiedykolwiek musiałem użyć tego parametru. – Brejuro

+0

@ user3356655 domyślnie parametry są niezmienne jak zadeklarowane za pomocą 'let'. jest wspomniany gdzieś w dokumencie, ale jestem zbyt leniwy, aby go znaleźć. –

+0

"lub utwórz zmienną kopię" Nie ma sensu przyjmowanie stałego parametru tylko po to, aby przypisać go do innej zmiennej. – newacct

Powiązane problemy