SORU
21 ŞUBAT 2012, Salı


Neden yok't yakut yöntem aşırı yükleme desteği?

Yöntemi aşırı desteklemek yerine Ruby mevcut yöntemler üzerine yazar. Herkes dilini bu şekilde tasarlanmıştır neden açıklayabilir mi?

CEVAP
21 ŞUBAT 2012, Salı


Metot aşırı yükleme aynı adı taşıyan iki yöntem bildirmek ve farklı imzalar ile elde edilebilir. Bu farklı imzalar da olabilir

  1. Veri türleri, örneğin farklı bağımsız değişkenler: method(int a, int b) vs method(String a, String b)
  2. Argümanlar, örneğin değişken sayısı: method(a) vs method(a, b)

Veri türü ruby bildirimi yok, çünkü elde yöntemi aşırı ilk yolu kullanarak edemeyiz(dinamik yazılan dil). Yani yukarıdaki yöntemi tanımlamak için tek yol def(a,b)

İkinci seçenek ile, metot aşırı yükleme yapabiliriz gibi görünebilir, ama yapamayız. İzin bağımsız değişken sayısı farklı olan iki yöntem var

def method(a); end;
def method(a, b = true); end; # second argument has a default value

method(10)
# Now the method call can match the first one as well as the second one, 
# so here is the problem.

Ruby yöntemi benzersiz bir ad ile zincir bak bir yöntem korumak gerekiyor.

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

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Damien Walters

    Damien Walte

    20 AĞUSTOS 2006
  • martin shervington

    martin sherv

    7 EKİM 2011
  • SelmerSaxMan

    SelmerSaxMan

    24 HAZİRAN 2006