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

  • Amazon Web Services

    Amazon Web S

    8 NİSAN 2009
  • hidetake takayama

    hidetake tak

    3 Mart 2009
  • Jonathan Morrison

    Jonathan Mor

    24 Mart 2010