2015-01-06 20 views
5

Birisi someVar.successor() öğesinin ne olduğunu açıklayabilir mi? Apple belgeleri, "self'dan sonraki bir sonraki değeri döndürür" diyor. Uygulama anlamını anlamıyorum.Hızda .successor() nedir?

Teşekkürler.

+0

hakkında daha fazlasını okuyun nedir? – Dair

+0

Oyun alanındayken, işlevin adına tıklayın, sonra Görünüm-> Yardımcı Programlar-> Hızlı Yardım Müfettişini Göster –

cevap

6

1 eklemek yerine, dizin üzerinde successor() öğesini çağırabiliriz.

Örneğin Bunun için:

func naturalIndexOfItem(item: Item) -> Int? { 
    if let index = indexOfItem(item) { 
     return index + 1 
    } else { 
     return nil 
    } 
} 

bu eşittir:

func naturalIndexOfItem(item: Item) -> Int? { 
    if let index = indexOfItem(item) { 
     return index.successor() 
    } else { 
     return nil 
    } 
} 
+0

'u seçin. Ancak successor() 'ın taşmaya izin verdiğini unutmayın. + yapmıyor. –

9

successor() yöntemi (eğer varsa, güncel değeri 0 ise o zaman çağrı geçerli bir sonraki değer verir successor(), 1 ve daha sonra dönecektir)

Tipik bir halef() uygulaması şöyle görünecektir:

indeksine toplama kullanılan tip
class ForWardIndexDemo: ForwardIndex 
{ 
    private var _myIndex = 0 
    init(index: Int) 
    { 
     _myIndex = index; 
    } 

    func successor() -> ForWardIndexDemo 
    { 
     return ForWardIndexDemo(index:_myIndex++) 
    } 
} 

koleksiyon ilişkili tip IndexType belirtir. ForwardIndex'i uygulayan her tür, IndexType olarak kullanılan olabilir.

ForwardIndex değeri 0 bir ön göstergesi 1,2,3 vb artan örneğin sadece, artırılabilir bir indeksi olan ... Bu protokol dahili Equatable ve _Incrementable protokolleri devralır. ForwardIndex protokolü halefi() -> Kendine ait yönteme bağlanmak için ve Eşitlenebilir protokoller uygulanmalıdır. Bu

nerede docs bu here

+0

bu, göndereceğim cevaplara benziyordu. :) – rakeshbs

+0

@rakeshbs: Ohh, Cevabınızı da gönderebilirsiniz. Cevabınız ayrıca öğrenilecek yeni bir şey olacak. –

+0

cevabınız kabul edilenlerden daha iyidir. bu yüzden yorumda bulundum. – rakeshbs

İlgili konular