本文簡要介紹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。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。