红宝石全球变量双美元符号

时间:2016-10-11 21:58:31

标签: ruby

我在Ruby中发现了一个特殊的全局变量。它是$$,它始终是一个数字。但是这是什么意思?即使在文档中我找不到任何东西。

2 个答案:

答案 0 :(得分:4)

它是表示当前流程的预设变量' ID。它已在http://ruby-doc.org/stdlib-2.3.1/libdoc/English/rdoc/English.html中记录。

Process.pid是替代品,或者使用:

require 'English'
my_pid = $PROCESS_ID

一般来说,不鼓励使用短切全球,因为除非你知道它们是什么,否则它们会像魔法咒语或视觉噪音一样。

答案 1 :(得分:1)

这是pre-defined Ruby global variables之一。

所有全局变量都以$为前缀,在这种情况下,$$表示当前进程ID。这是从Perl继承的。

有些东西不容易搜索,而$$就是其中之一,所以你无法轻易找到它是可以理解的。