ruby中的self
如果是成员方法,则成员方法中出现self为实例对象
如果是类方法(methodAA表现为类方法),则self为类对象
module A
def methodA
p "---------------instance method's self: " + self.to_s
self.class.methodAA
end
def self.included(base)
base.extend AA
end
module AA
def methodAA
p "---------------class method's self: " + self.to_s
end
end
end
class H
include A
end
H.new.methodA
分享到:
相关推荐
而由于ruby作为一个完全纯净的面向对象语言,任何东东都是对象,方法是对象,类也是对象…,所以self就会有很多环境,区分不同环境的self含义才能更好的理解程序的含义 一、Top Level Context Ruby代码 puts self ...
class Person def aa "#{self.class.name}(##{self}:#{self.to_s})" end p = Person.new puts p.who_am_i?
本文主要给大家介绍了在Ruby中 module_function 和 extend self的共同点和区别,非常的详细,也很实用,方便大家更好的理解的module_function 和 extend self
练习定义实例方法,这些实例方法使用self关键字对调用该方法的对象进行操作。 了解有关猴子修补的信息。概述在本实验中,您将向Ruby的String类添加一些实例方法。 我们通常希望避免更改内置类(特别是如果我们与...
重点关注private与protected public 默认即为public,全局都可以访问,这个不解释 ...因为Ruby的原则是“private意为你不能指定方法接收者”,接收者只能是self,且self必须省略! 所以Ruby中子类可以访问父类的privat
py2rb.py 使用AST的代码转换器,从Python到Ruby。 这基本上是一个带有Ruby输出的NodeVisitor。..._(self,name): self.name = name def setname(self,name): self.name = nameclass foo(bar): register
这是一个用于读取文件的 ruby 库。 它大部分完成了,只需要一个很好的抛光。 它只会解析格式正确的文件,否则返回错误。 安装 gem install self - ml 用法 读入 .selfml 文件并漂亮地打印出来 require '...
Ruby有三类变量,一种常量和两种严格意义上的伪变量(pseudo-variables).变量和常量都没有类型.... 由首字母标识符将其分类: $ 全局变量 @ 实变量 [a-z] 局部变量 [A-Z] 常量 唯一的例外是Ruby的伪变量:self
为了做到这点,Ruby需要一个叫做self的东西。 这样的一个过程–发现一个方法再执行之–在每种面向对象语言中都会发生。不过,对于像Ruby这样非常动态的语言,深入理解这个过程显得尤为重要。你有没有好奇过一个方法...
提示1:请记住,要在另一个实例方法中调用一个实例方法,我们使用self关键字来引用要在其上进行操作的实例。 例如: class Person attr_accessor :age def initialize ( age = 0 ) @age = age end def ...
在静态类型的编程语言里,我们经常使用它去满足类型系统的特点,但是在类似Ruby这样的弱类型编程语言里,我们并不需要这么做。尽管如此,它对于我们来说还是有很多意义的。 当使用第三方类或者库的时候,我们经常从...
Ruby允许给单个对象增加方法,这种只针对单个对象生效的方法,称为单件方法 示例代码 str = “just a regular string” def str.title? self.upcase == self end str.title? # => false str.methods.grep(/title?/)...
Writing a command-line application that’s self-documenting, robust, adaptable and forever useful is easier than you might think. Ruby is particularly suited to this task, because it combines high-...
下面这段程序让我纠结了很久,Ruby中private的概念真的很奇怪。。。 class Test private def test_print puts 'test' end end class Test2 < Test xss=removed> 这里加上self就不能调用,private method `test_...
JSON由于其数据结构简单便利,已逐渐成为了互联网上的主流数据交换的数据格式。 在讨论嵌套对象(Nested Object)的JSON转换方法之前,我们先... “json_class” => self.class, “data” => {“var1” => @var1}
RubyGems是用于将其他Ruby库打包为单个独立文件的系统,该文件还包含有关该库的元数据,例如名称,类别,依赖项等。
人实验室 目标 熟练地实例化一个班级。 获得辨别何时实现attr_accessor , attr_reader和attr_writer 。 能够识别何时定义自己的attr_reader (getter)和attr_writer (setter)方法。 介绍 ...
ruby peg2rb.rb input-grammar > output-parser 其中input-grammar是具有输入语法描述的文件,而output-parser是要写入输出解析器的文件。 如果解析器生成成功,则程序以状态0退出,否则以非零状态退出。 peg2rb....
Class#inherited方法也是这样一个钩子方法,当一个类被继承时,Ruby会调用该方法。默认情况下,Class#inherited什么都不做,但是通过继承,我们可以拦截该事件,对感兴趣的继承事件作出回应。 class String def ...