#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 реализована по-другому.