2010-07-19 19 views
11

Si en un archivo de rubí defino una función de este modo:Rubí equivalente a Python __main__

def tell_the_truth() 
    puts "truth" 
end 

¿Hay un equivalente a pitón del principal?

if __name__ == "__main__": 
    tell_the_truth() 

¿Es simplemente para llamar a la función dentro del archivo?

tell_the_truth 
+2

La razón de la 'if' en Python es evitar que la función de ser llamado si el archivo se incluye en otro, lo que a su El ejemplo de Ruby no funciona (hasta donde yo sé) –

+0

Gracias Michael. Entiendo por qué detrás de if en python. Para comparar, he intentado poner tell_the_truth() justo debajo de la definición de la función y luego importar ese archivo desde otro archivo ruby ​​usando "require". Eso imprime "verdad". Por lo tanto, la instrucción de nivel superior parece ejecutarse cuando se importa un archivo. – Rodrigue

Respuesta

25

creo que esto va a funcionar:

if __FILE__ == $0 
    tell_the_truth() 
end 
1
if __FILE__ == $PROGRAM_NAME 
    tell_the_truth() 
end