Глобальная переменная Ruby с двойным знаком доллара

#ruby

#ruby

Вопрос:

Я обнаружил специальную глобальную переменную в Ruby. Это $$ и это всегда число. Но что это значит? Даже в документации я ничего не могу найти.

Комментарии:

1. Это предустановленная переменная, которая представляет идентификатор текущего процесса.

Ответ №1:

Это предустановленная переменная, которая представляет идентификатор текущего процесса. Это задокументировано в http://ruby-doc.org/stdlib-2.3.1/libdoc/English/rdoc/English.html .

Process.pid является альтернативой или использовать:

 require 'English'
my_pid = $PROCESS_ID
  

В общем, сокращенные глобальные переменные не рекомендуется использовать, потому что они похожи на магические заклинания или визуальный шум, если вы не знаете, что это такое.

Ответ №2:

Это одна из предопределенных глобальных переменных Ruby.

Все глобальные переменные имеют префикс $ , и в данном случае $$ представляют текущий идентификатор процесса. Это было унаследовано от Perl.

Некоторые вещи не очень легко найти, и $$ это одна из них, поэтому понятно, почему вы не могли легко ее найти.

Комментарии:

1. Старый добрый Perl, страна кратких выражений и визуального шума. 🙂

2. @theTinMan Вернулся из тех дней, когда код выглядел как шум строки, и нам это нравилось.

3. $$ однако это не истинная переменная. По крайней мере, вы не можете присвоить ей значения.

4. @Aetherus Это считается переменной, доступной только для чтения . То, что вы не можете изменить значение, не означает, что оно больше не является переменной. «Константа» в Ruby реализована по-другому.