首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >ZenTest的源代码问题

ZenTest的源代码问题
EN

Stack Overflow用户
提问于 2009-01-19 10:38:32
回答 1查看 94关注 0票数 0

下面是猴子从autotest中修补Dir[]方法的一个方法

代码语言:javascript
复制
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吗?提前谢谢。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2009-01-19 10:44:20

在Ruby中,可以将多个变量赋给一行上的多个值。

该行等同于以下内容:

代码语言:javascript
复制
old_warn = $-w
$-w = false

如果您想知道目的是什么,$-w是Ruby语言中的一个全局变量,它指向一个布尔值,该布尔值指示用户在运行脚本时是否将-w标志传递给ruby可执行文件。换句话说,该变量指示脚本/程序当前是否应该打印“警告”。

本质上,整个代码块的目的是确保在执行其核心之前关闭警告。warn标志的旧值被保存到一个新的变量中;warn标志被关闭;然后当执行完成时,warn标志被重新设置回原来的状态。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/457185

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档