下面是猴子从autotest中修补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吗?提前谢谢。
发布于 2009-01-19 10:44:20
在Ruby中,可以将多个变量赋给一行上的多个值。
该行等同于以下内容:
old_warn = $-w
$-w = false如果您想知道目的是什么,$-w是Ruby语言中的一个全局变量,它指向一个布尔值,该布尔值指示用户在运行脚本时是否将-w标志传递给ruby可执行文件。换句话说,该变量指示脚本/程序当前是否应该打印“警告”。
本质上,整个代码块的目的是确保在执行其核心之前关闭警告。warn标志的旧值被保存到一个新的变量中;warn标志被关闭;然后当执行完成时,warn标志被重新设置回原来的状态。
https://stackoverflow.com/questions/457185
复制相似问题