什么是「;关于;ruby中的关键字?
我是一名学习ruby的学生,我不确定“on”在这段代码中的作用 比如说,什么是「;关于;ruby中的关键字?,ruby,Ruby,我是一名学习ruby的学生,我不确定“on”在这段代码中的作用 比如说, on :channel do |m| @users[m.user.nick] = Seen.new(m.user.nick, m.channel, m.message, Time.new) end 有人能解释一下吗?on是Cinch.Bot上的一个方法:它不是一个关键字,而是一个在刚刚创建的Cinch::Bot对象上调用的简单实例方法。要传递给Cinch::Bot.new的块将根据该新对象()进行计算。这是一个称为
on :channel do |m|
@users[m.user.nick] = Seen.new(m.user.nick, m.channel, m.message, Time.new)
end
有人能解释一下吗?
on
是Cinch.Bot
上的一个方法:它不是一个关键字,而是一个在刚刚创建的Cinch::Bot
对象上调用的简单实例方法。要传递给Cinch::Bot.new
的块将根据该新对象()进行计算。这是一个称为“DSL”(领域特定语言)的巧妙技巧:它看起来像神奇的关键字或全局方法,但实际上只是在普通对象上调用的方法
看起来上的是在中定义的
代码可以这样编写:
bot = Cinch::Bot.new
bot.on :channel do |m|
...
end
最好是内联复制代码,而不是外部链接,尤其是到一个存储库中,在那里代码会定期更改。这显然是一种方法,而不是关键字。