SORU
27 Mart 2010, CUMARTESİ


Ruby: örneği Arama sınıf yöntemi

Ruby, nasıl bu sınıfın örneklerini bir sınıf yöntemi çağrısı mı? Var

class Truck
  def self.default_make
    # Class method.
    "mac"
  end

  def initialize
    # Instance method.
    Truck.default_make  # gets the default via the class's method.
    # But: I wish to avoid mentioning Truck. Seems I'm repeating myself.
  end
end

hat Truck.default_make varsayılan alır. Ama Truck söz etmeden bu demenin bir yolu var mı? Olmalı gibi görünüyor.

CEVAP
27 Mart 2010, CUMARTESİ


Bir örnek yöntemi içinde sınıf gerçek adı, sözünü yerine sadece self.class.whatever diyebilirsin.

class Foo
    def self.some_class_method
        puts self
    end

    def some_instance_method
        self.class.some_class_method
    end
end

print "Class method: "
Foo.some_class_method

print "Instance method: "
Foo.new.some_instance_method

Çıkışlar:

Class method: Foo
Instance method: Foo

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

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • ASUS Campus Life

    ASUS Campus

    18 Mart 2013
  • Rockstar Games

    Rockstar Gam

    17 ŞUBAT 2006
  • TeachMeComputer

    TeachMeCompu

    31 EKİM 2009