La función main

:main es una función especial y opcional.

Comportamiento#

  • Si defines :main, el programa la ejecuta automáticamente al iniciar.
  • Puede recibir los argumentos de la terminal.
  • Solo puede existir una función main en el proyecto.
  • Fuera de main solo pueden quedar declaraciones de funciones o clases, y variables globales con valor estático.
Si hay código suelto en el nivel superior

Si llamas funciones o ejecutas sentencias fuera de main, el programa sigue corriendo, pero ya no se ejecuta main. El compilador asume que es un script directo y que no necesitas ese punto de entrada.

Ejemplo con argumentos#

Al ejecutar ./dinocode programa.dino arg1 arg2, los argumentos llegan a main:

nombre = "DinoCode 🦖"

:caratula
  print "--------------------------"
  print "Bienvenido a $nombre      "
  print "--------------------------"

:main args
  caratula
  print "Argumentos de la línea de comandos:"
  for arg in args
    print arg

Script sin main#

Defines funciones y las llamas al final del archivo.

:caratula
  print "--------------------------"
  print "Bienvenido a DinoCode 🦖  "
  print "--------------------------"

caratula
¿Cuándo usar main?

En proyectos pequeños puedes omitirla. En programas que leen argumentos de consola o separan bien la fase de arranque, main ayuda a ordenar el flujo.