def get_my_secret2 self.my_secret # => 显式
来源:互联网 发布:什么是数据库实例 编辑:程序博客网 时间:2024/06/09 19:36
显式self不可以调用private(protected的也一样)方法,而隐式的可以(这个原因我在下面解释) 。
原因是什么?
Ruby代码- self.my_secret # => 显式
- #这一句的self在实例方法内,所以self指的是Person的一个实例,而实例是不能调用私有方法的(protected也如此)
- #注意,此时的self和我们new一个Person的实例没有本质区别。
# encoding: utf-8class Person public def get_my_secret1 my_secret # => 隐式 end def get_my_secret2 self.my_secret # => 显式 end private def my_secret p 'something...' end def self.secret p 'nothing' end class << Person def method3 p 'method3' end private def method4 p 'method4' end end end m = Person.new #m.my_secret # => private method error Person.secret # => nothing Person.method3 #fantaxy added here! #Person.method4 #fantaxy added here! #NoMethodError: private method `method4' called for Person:Class m.get_my_secret1 # => something m.get_my_secret2 # => private method error =begin "nothing""method3""something..."class_Public.rb:10:in `get_my_secret2': private method `my_secret' called for #<Person:0xc46e60> (NoMethodError) from class_Public.rb:43:in `<main>'请按任意键继续. . .=end
- def get_my_secret2 self.my_secret # => 显式
- def PrintTreeLikeTree(self):序
- xadmin遇到def save_models(self)的问题
- self.delegate = self?
- self.delegate = self?
- *.def
- DEF
- def
- def
- .def
- DEF
- DEF
- def
- Fuck self.delegate = self
- __block typeof(self) bself = self;
- typeof(self) bself = self的作用
- _weak typeof(self) weakSelf = self
- _weak typeof(self) weakSelf = self
- 5308 Integer Inquiry
- Java线程入门2:使用Runnable接口创建线程
- 毕季
- UVaOJ 537 - Artificial Intelligence?
- 10个可视化开发的MySQL管理工具
- def get_my_secret2 self.my_secret # => 显式
- Android深入浅出之Audio 第一部分 AudioTrack分析
- jQuery Ajax 实例演示
- 5309 Product
- jquery mobile 页面间的传递参数
- 浅谈从源代码文件到二进制可执行文件的过程
- 8086指令用法
- Android深入浅出之Audio第三部分Audio Policy[1]
- MySQL问题解决:-bash: mysql: command not found