12/08/2018, 18:22
Private Class Methods trong Ruby
Một tip nhỏ để tạo nhanh class method như private method.Bây giờ chúng ta sẽ định nghĩa nhanh private instance method trong ruby. class Dog def poop "Going outside, and will poop" end private def bark puts "woof woof" end end Như ta thấy ...
Một tip nhỏ để tạo nhanh class method như private method.Bây giờ chúng ta sẽ định nghĩa nhanh private instance method trong ruby.
class Dog def poop "Going outside, and will poop" end private def bark puts "woof woof" end end
Như ta thấy ở trên, method poop là một public method và bark là private method. Nếu như chúng ta gọi public method nó sẽ như sau:
dog = Dog.new dog.new # => "Going outside, and will poop"
Nhưng chúng ta gọi private method nó sẽ như sau:
dog = Dog.new dog.bark # NoMethodError: private method `bark' called for #<Dog>
Ok. Bậy giờ chúng ta sẽ định nghĩa class method nó không phải instance method.Và cho nó là private.
class Dog private def self.things_can_be_done [:bark, :poop, :sleep, :eat] end end > Dog.things_can_be_done # => [:bark, :poop, :sleep, :eat]
Có vẻ hoạt động vẩn ổn