[英]Source code problem of ZenTest
这是猴子从自动测试修补Dir []方法的一种方法
class Dir
class << self
alias :old_index :[]
def [](*args)
$-w, old_warn = false, $-w
old_index(*args)
ensure
$-w = old_warn
end
end
end
您能帮忙解释一下$-w, old_warn = false, $-w
这行吗? 提前致谢。
您可以在Ruby的一行中将多个变量分配给多个值。
该行等效于以下内容:
old_warn = $-w
$-w = false
如果您要问的是什么目的; $-w
是Ruby中的全局变量,它指向一个布尔值,该布尔值指示用户在运行脚本时是否将-w
标志传递给ruby
可执行文件。 换句话说,变量指示脚本/程序当前是否应该打印“警告”。
本质上,整个代码块的目的是确保在执行内核之前关闭警告。 警告标志的旧值保存到新变量中; 警告标志已关闭; 然后在执行完成后,将警告标志重新设置回原来的状态。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.