Swift

2014-11-28 26 views
7

için yazılan üye değişkeni nasıl artırılır Bir Swift uygulaması yazıyorum ve bir Int tipi üye değişkeni artırmada sorun yaşıyorum. Swift

I

let index:Int 

ile değişken oluşturulur, sonra in başlatıcısı I

self.index++ 
birini kullanarak bir fonksiyonu içinde artırmak deneyin zaman,

sonra
self.index = 0 

kullanılarak örneği

veya

self.index = self.index + 1 

İlk durumda, "Int 'türü argümanı ile" invard' ++ 've ikinci durumda "Kendiliğinden' pos 'atama yapılamıyor" dedim.

Özel sürümlerini yazabilmeniz dışında ++ işleci hakkında bilgi bulamadım ancak en azından tamsayı türünde olduğunu varsayalım. Eğer bu doğru değilse o zaman bu soruya cevap verir.

Başka bir fikrim yok.

Teşekkürler!

class MyClass { 

    let index : Int 

    init() { 
     index = 0 
    } 

    func foo() { 
     index++ // Not allowed 
    } 
} 

index olarak

cevap

18

bir sabit depolanmış bir özelliktir. Bu bir başlangıç ​​değeri

let index : Int = 0 

verilebilir ve sadece başlatma sırasında değiştirilebilir (Ve başlatma bittiğinde o kesin değeri olmalıdır.)

Peşinde değerini değiştirmek isterseniz

var index : Int 

Mo: başlatma o zaman bir değişken saklanan özellik olarak ilan gerekecek Swift belgelerinde "Properties" numaralı telefondan bilgi. Bir değişken olarak ilan eğer - - (Bir yorumda gibi) ++ ve -- Swift 2.2 kullanımdan kaldırılmış ve Swift 3'te kaldırıldığını

Not yüzden sen

index += 1 
ile bir artıracaktır Bunun yerine

.

+0

Yardımın için teşekkürler! Özelliklerin mutlaka yerine kullanılması ile bildirilmesi gereken bir yeri yanlış okumuştum. – NumberOneRobot

+0

Bu derleyici hataları tamamen yanıltıcıdır, bu durumda. –

+0

++ operatörü de yalnızca swift ile çalışıyor ex: value ++ not value ++ (bazı zamanlar derleme zamanı hatası veriyor) – Alok

2

ben onun değerini DEĞİŞEN, index değerini artmasından Çünkü sen

var index:Int = 0 

içine

let index:Int 

değiştirebilir düşünmek, bir var olarak ilan etmek gerekir. Ayrıca, let'un bir sabit bildirmek için kullanıldığını bilmeye değer.

Ardından, self.index++'u kullanabilirsiniz. self.index ve ++ arasında boşluk olmadığına dikkat edin.

Bu yardımcı olacaktır umarım.