只是好奇为什么我不能从'local_variables'数组中删除声明的局部变量.
例:
x=1
myarr = local_variables.clone
p local_variables
=> [:x, :_]
p myarr
=> [:x, :_]
p local_variables.class
=> Array
p myarr.class
=> Array
myarr.delete :x
p myarr
=> [:_]
local_variables.delete :x
p local_variables
=> [:x, :_]
Run Code Online (Sandbox Code Playgroud)
WTF?
我确实怀疑使用参数调用local_variables.delete:x重新声明它,因为它被重新声明.但如果使用其他先前未声明的符号调用则不会更改它:
p local_variables
=> [:x, :_]
local_variables.delete :whatever
p local_variables
=> [:x, :_]
Run Code Online (Sandbox Code Playgroud)
有人可以解释一下吗?
谢谢.
local_variables返回一个包含所有当前声明的局部变量名称的数组.您可以使用该数组执行任何操作,但这显然不会影响声明哪些局部变量.为什么会这样?如果你从电话簿中删除一个名字,那个人会死吗?
| 归档时间: |
|
| 查看次数: |
224 次 |
| 最近记录: |