3
根據ruby-doc.org,kernel#eval
需要綁定對象作爲第二個參數,如下所示:eval和binding:它們對於什麼有用?
Const = 7
p eval("Const", binding) # => 7
方法eval
可以與由接受一個參數的方法get_binding
返回的對象一起使用:
def get_binding(param)
return binding
end
n = get_binding(7)
p eval("param", n) # => 7
在第一段代碼中,我們得到的值爲Const
,在第二段代碼中,我們得到的值爲param
。如果我們使用eval
和binding
來檢索我們已知的值,那麼這些方法有用的是什麼?
這些都是簡單的例子,說明'Binding'和'eval' *如何工作*,*不是*真實世界的應用程序如何使用*。特別是,使用帶有常量字符串的'eval'沒有任何意義,您通常將它與包含一些未知或動態構建的部分的字符串一起使用。 –