SORU
3 HAZİRAN 2009, ÇARŞAMBA


Nasıl Objective-C lambda yöntemleri yazmak için?

Nasıl Objective-C lambda yöntemleri yazmak için ?

CEVAP
27 Kasım 2009, Cuma


Objective-C lambda kavramı artık-by pass-referans fonksiyonları eşdeğer olan Blocks fikri ile saklanır. Tabii ki, muhtemelen zaten işlev işaretçileri fikri C; bloklar da yerel devlet (yani kapakları) yakalama sadece bir yolu vardır. Aslında, bloklar da diğer C dilleri de (Mac) kullanılabilir - standart C sözdizimi bir parçası yapmak için bir önerisi var.

İşte lambda iki sayı birbirine çarpmak için tanımlama örneği:

int (^mult)(int, int) = ^(int a, int b) { return a*b };

İlk bölümü bir değişken tipi ^int(int,int) bildirir ve iki bağımsız değişkenler birden fazla döndüren bir lambda ifadesi (aka blok) atar. O zaman fn pass civarında, diğer yerlerde define vb; hatta diğer fonksiyonları kullanabilirsiniz.

İşte çağrıldığında, başka bir işlevi olan bir işlevi tanımlayan bir örnek:

multiplyBy = ^(int a) { return ^(int b) { return b*a; }; };
triple = multiplyBy(3);

Objective-C nesne veri yapıları blok seviyesinden işlem bir çeşit nesne türleri (genellikle nesne türü olarak id kullanarak) ve yeni birçok bloklar birbirine karışması unutmayın. GCD de rasgele olaylar geçirmek; ancak, GCD de işlev işaretçileri ile de kullanılabileceğini unutmayın için bloklar kullanır.

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Arun Kumar

    Arun Kumar

    18 Mart 2010
  • Distractify

    Distractify

    1 Aralık 2011
  • THE RED DRAGON

    THE RED DRAG

    6 ŞUBAT 2009