繁体   English   中英

ZenTest的源代码问题

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM