Ruby on rails 理解Ruby消息
提供一些背景资料;在过去的几个月里,我一直在学习Ruby(已经阅读了大部分基础扎实的Ruby作者,完成了辛辣的Ruby指南,并计划在以后阅读雄辩的Ruby),但是,我掌握了大多数概念,即对象、Ruby内核(基础)、范围、循环等等,当涉及到向代码发送消息/方法时,我感到困惑 让我们以这行代码为例:Ruby on rails 理解Ruby消息,ruby-on-rails,ruby,ruby-on-rails-3,ruby-on-rails-3.1,rubygems,Ruby On Rails,Ruby,Ruby On Rails 3,Ruby On Rails 3.1,Rubygems,提供一些背景资料;在过去的几个月里,我一直在学习Ruby(已经阅读了大部分基础扎实的Ruby作者,完成了辛辣的Ruby指南,并计划在以后阅读雄辩的Ruby),但是,我掌握了大多数概念,即对象、Ruby内核(基础)、范围、循环等等,当涉及到向代码发送消息/方法时,我感到困惑 让我们以这行代码为例:toolkit=toolkit.get\u default\u toolkit 现在toolkit是toolkit对象的变量,get\u default\u toolkit是方法/消息。在大多数代码中,我
toolkit=toolkit.get\u default\u toolkit
现在toolkit是toolkit对象的变量,get\u default\u toolkit是方法/消息。在大多数代码中,我发现模棱两可的是方法/消息没有在任何地方定义。所以我的问题是,是否有一个核心信息/方法的列表,我们(rubyists)可以研究这些信息/方法,并在基本层面上使用它们
或者这些方法的作用域很大,并且是在程序的其他地方定义的吗?这些方法是在类定义中定义的,就像它们在几乎所有语言中一样
get\u default\u toolkit
不是您必须通过核心Ruby类查找的低级方法,它是类toolkit
的一部分,并且将在定义该类的任何地方定义它
有这样的方法,比如Kernel
或Object
中定义的方法,但是get\u default\u工具箱
不是其中之一
对于任何给定的方法,您都可以通过调用object.method('method\u name').owner
来确定它是在哪个类中定义的,或者通过调用.source\u location
来确定它是在哪里定义的(文件/行号)
现在toolkit是toolkit对象的变量
更好的表述方式是,
toolkit
是一个变量,toolkit
是一个类,toolkit
现在包含了toolkit
类的一个新实例。如果您想找到一个对象或类的可用方法调用,可以调用它的方法
e、 g
我喜欢将它们称为pp和sort,以便它们以可读的方式打印出来
pp String.methods.sort
thing = Array.new
pp thing.methods.sort