ruby学习笔记(一)

1.ruby中列出对象的方法

要知道一个类是否定义了某个特殊的实例方法,需要在类上调用method_defined?或者在类的实例上调用respond_to? 要知道一个类是否定义可某个特定的类方法,需要在类上调用respond_to?

class MyClass
   def   MyClass.my_singleton_method
   end
   def  my_instance_method
   end
end

MyClass.method_defined?  :my_instance_metnod         # => true
MyClass.new.respond_to?  :my_instance_metnod         # => true
MyClass.respond_to?        :my_instance_metnod         # => flash
MyClass.respond_to?      :my_singleton_method          # => true

2. 一个Method还可用作一个代码块
s= "sample srting"
replacements = {"a" => i","tring" =>"ubstitution"}
replacements.collect(&s.metnod(:gusb))      #=>["simple srting" ,"sample substitution"]

3.如何获得对同一个类的一个实例和一个类方法的引用。

class Welcome
   def   Welcome.a_class_method
         return "Greetings from the welcome class"
  end
  def  an_instance_method
        return "Salutation  from a welcome  class"
  end
end

Welcomer.method("an_instance_method")
# NameError: undefined method 'an_instance_method' for class 'Class'
Welcomer.new.method("an_instance_method").call
# => "Salutations from a Welcomer object."  // 实例方法的调用
Welcomer.method("a_class_method").call
# => "Greetings from the Welcomer class."  // 类方法的调用

你可能感兴趣的:(Flash,Ruby)