打印

用ruby造句

用ruby造句

您希望用ruby造句,如同用英语造句一样:
Is axgle good?
Yes it is
Oh my god! this is very cool!
复制内容到剪贴板
代码:
class Sentence
  def initialize(start)
    print start.to_s + " "
  end
  
  def method_missing(sym)
    print sym.to_s + " "
    return self  
  end  
end

is=Sentence.new("Is")
is.axgle.good?

puts ""

yes=Sentence.new("Yes")
yes.it.is

puts ""

oh=Sentence.new("Oh")
oh.my.god.this.is.very.cool!
axgle说明:当你在ruby里定义某些特殊名称的方法后,ruby会在预先规定的地方自动调用这些方法。例如initialize方法,只要你定义了这个方法,那么ruby就会在你使用new生成新对象的时候调用initialize方法.

当你使用new生成了一个对象后,而这个对象又调用了不存在的方法,那么ruby会调用method_missing这个特殊方法。method_missing这个方法的第一个参数是一个符号,表示的是那个原本就不存在的方法的名字。

initialize方法和method_missing方法都是ruby默认提供的“钩子”方法,只要你定义了它们,它们就会在适当的地方被自动调用(除非你不定义它们)

最后,问号和感叹号都可以作为方法名的一部分,very.cool!

TOP

呵呵,今天尝试了!

不错,ruby给人的感觉果然是耳目一新!

TOP

method_missing(sym)很重要!學習了!

TOP