2010-02-01 29 views
11
irb(main):002:0> $$ 
=> 5052 

¿Cuál es el significado de $$ en Ruby y cómo/Dónde usarlo?

Respuesta

18

$$ es el process ID. Se llama de esa manera para seguir Perl, que a su vez siguió el shell de Bourne; ambos también usan $$ de la misma manera.

+1

@Wayne: Por favor, siéntase libre de escribir su propia respuesta sobre los sinónimos 'ingleses ', y tal vez vincule un comentario. :-) –

+1

Si rechazó mi edición porque estaba equivocada o empeoró su respuesta, acepto su rechazo (pero sería bueno saber por qué). Si lo rechazó porque considera que su respuesta pertenece solo a usted, entonces: http://meta.stackexchange.com/a/15843/141929 –

+0

@WayneConrad Realmente, más porque me desagrada 'Inglés 'que cualquier otra cosa. Parte de mi aversión se debe a que: 1. está solo en 'stdlib' y no en' core', y rara vez se menciona o usa, y 2. 'Los efectos secundarios de 'English' en Perl (se refiere a' $ \ '', ' $ & ', y' & '', [con implicaciones de rendimiento] (http://perldoc.perl.org/English.html#PERFORMANCE)) me han desconectado por completo. (Por supuesto, Ruby no es Perl, pero los viejos hábitos son difíciles). –

5

Es la identificación del proceso del intérprete de Ruby. $ es un prefijo para variables globales, vea here para obtener una lista.

+0

+1 para la lista – AJP

7

This parece una buena referencia para cosas como esta ... tiene un montón de simbolismo de bondad.

+0

+2 para obtener una lista mejor! – AJP

1

Es la identificación del proceso actual de Ruby. Solo lectura

2
pipe = IO.popen("") 
if pipe 
    STDERR.puts "In parent, child pid is #{pipe.pid}" 
else 
    STDERR.puts "In child, pid is #{$$}" 
end 

Este ejemplo muestra cómo se puede utilizar la identificación del proceso. ID de proceso es parte de 'Variables de entorno de ejecución' (parte de las variables predefinidas).

Cuestiones relacionadas