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

  • pucksz

    pucksz

    24 Mart 2006
  • TecnoTutosPC

    TecnoTutosPC

    19 Kasım 2012
  • Tome Rodrigo

    Tome Rodrigo

    9 Temmuz 2006