SORU
10 ŞUBAT 2011, PERŞEMBE


özel bir sınıf oluşturma yöntemi

Bu nasıl çalışır: özel sınıf bir yöntem oluşturma yaklaşımı gelir

class Person

  def self.get_name
    persons_name
  end

  class << self
    private
      def persons_name
        "Sam"
      end
  end
end

puts "Hey, "   Person.get_name
puts "Hey, "   Person.persons_name  #=> raises "private method `persons_name' called for Person:Class (NoMethodError)"

ama bu değil

class Person

  def self.get_name
    persons_name
  end

  private
    def self.persons_name
      "Sam"
    end
end

puts "Hey, "   Person.get_name
puts "Hey, "   Person.persons_name

CEVAP
10 ŞUBAT 2011, PERŞEMBE


private eğer açık bir nesne üzerinde bir yöntem (sizin durumunuzda self) tanımlıyorsanız çalışmak için görünmüyor. private_class_method özel olarak sınıf yöntemleri (ya da tarif ettiğin gibi) tanımlamak için kullanabilirsiniz.

class Person

  def self.get_name
    persons_name
  end

  def self.persons_name
    "Sam"
  end
  private_class_method :persons_name
end

puts "Hey, "   Person.get_name
puts "Hey, "   Person.persons_name

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

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Bart Baker

    Bart Baker

    1 Aralık 2006
  • RayperEnglishKnight

    RayperEnglis

    24 Kasım 2008
  • Virtual Riot

    Virtual Riot

    19 Mayıs 2011