本文简要介绍ruby语言中 BasicObject.instance_eval
的用法。
用法
instance_eval(string [, filename [, lineno]] ) → obj
instance_eval {|obj| block } → obj
在接收器 (obj
) 的上下文中评估包含 Ruby 源代码或给定块的字符串。为了设置上下文,在代码执行时变量self
设置为obj
,使代码可以访问obj
的实例变量和私有方法。
当给instance_eval
一个块时,obj
也作为块的唯一参数传入。
当 instance_eval
给出 String
时,可选的第二个和第三个参数提供报告编译错误时使用的文件名和起始行号。
class KlassWithSecret
def initialize
@secret = 99
end
private
def the_secret
"Ssssh! The secret is #{@secret}."
end
end
k = KlassWithSecret.new
k.instance_eval { @secret } #=> 99
k.instance_eval { the_secret } #=> "Ssssh! The secret is 99."
k.instance_eval {|obj| obj == self } #=> true
相关用法
- Ruby BasicObject.instance_exec用法及代码示例
- Ruby BasicObject.equal?用法及代码示例
- Ruby BasicObject.obj ==用法及代码示例
- Ruby BasicObject.method_missing用法及代码示例
- Ruby BasicObject.singleton_method_undefined用法及代码示例
- Ruby BasicObject.send用法及代码示例
- Ruby BasicObject.singleton_method_added用法及代码示例
- Ruby BasicObject.singleton_method_removed用法及代码示例
- Ruby BasicObject.__id__用法及代码示例
- Ruby BasicObject类用法及代码示例
- Ruby BasicSocket.send用法及代码示例
- Ruby BasicSocket.remote_address用法及代码示例
- Ruby BasicSocket.recv用法及代码示例
- Ruby BasicSocket.do_not_reverse_lookup用法及代码示例
- Ruby BasicSocket.do_not_reverse_lookup =用法及代码示例
- Ruby BasicSocket.connect_address用法及代码示例
- Ruby BasicSocket.recv_nonblock用法及代码示例
- Ruby BasicSocket.recvmsg用法及代码示例
- Ruby BasicSocket.getsockopt用法及代码示例
- Ruby BasicSocket.getpeereid用法及代码示例
- Ruby BasicSocket.local_address用法及代码示例
- Ruby BasicSocket.shutdown用法及代码示例
- Ruby BasicSocket.close_read用法及代码示例
- Ruby BasicSocket.getpeername用法及代码示例
- Ruby BasicSocket.getsockname用法及代码示例
注:本文由纯净天空筛选整理自ruby-lang.org大神的英文原创作品 BasicObject.instance_eval。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。