ruby - Ruby 中的 $DEBUG 全局变量

标签 ruby

有人可以总结一下什么时候使用了 $DEBUG 吗?我不熟悉它,也没有找到文档(Class Thread documentationModule Signal documentation)。

这些是我不清楚发生了什么的例子:

p @ivar if $DEBUG

和:

Signal.trap("USR1") do
  $debug = !$debug
  puts "Debug now: #$debug"
end

最佳答案

两者完全不同。第一个是调试行,只有当 $DEBUG 被设置时才会执行;如果将命令行参数 -d 传递给 ruby,则会设置 $DEBUG

第二个是翻转一个 $debug 变量(大小写不同!!),它特定于程序。当您使用 SIGUSR1 信号命中进程时,它会更改 Debug模式(对于让它有时只打印调试信息很有用)。

关于ruby - Ruby 中的 $DEBUG 全局变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15290672/

相关文章:

ruby - ruby 哈希的通用重组(深度为 4)

ruby-on-rails - 为什么 ruby​​ REGEX\A...\z 允许在开始时输入任何内容?

ruby-on-rails - Rails 3 Carrierwave 如何删除作为模型属性的文件?

ruby - 在 Ruby 中,为什么 "omega-3 (dHA)".gsub(/\b([a-z])/, '\0' .upcase) 不起作用?

ruby - 如何在 Nokogiri 中创建具有长命名空间的 XML,除以点

ruby-on-rails - 运行 rspec 的不同机器上规范的数组顺序不同

ruby - MacVim 命令窗口文本着色帮助(Rspec 输出)

ruby - 这个 HTTP 响应状态代码是什么意思?

ruby - 错误 : No such API key. 请将其添加到您的配置中(在初始 `gem push` 上自动完成)。如何解决这个问题?

ruby - 剥离的函数!,然后将零长度字符串转换为 nil