Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

263
Vistas
¿Por qué Array<String> es el tipo de parámetro elegido para la función principal en kotlin?

La función principal en kotlin:

 fun main(args : Array<String>) { println("Hello, world!") }

¿Por qué se pasa un Array?

over 4 years ago · Santiago Trujillo
3 Respuestas
Responde la pregunta

0

La firma de main se basa en lo que espera la máquina virtual de Java:

El método main debe declararse public, static, and void . Debe especificar un parámetro formal (§8.4.1) cuyo tipo declarado sea matriz de String . Por lo tanto, cualquiera de las siguientes declaraciones es aceptable:

 public static void main(String[] args) public static void main(String... args)

Esto es en lo que el compilador de Kotlin compila su función principal. A partir de Kotlin 1.3, el Array<String> explícito se puede omitir, pero seguirá estando disponible en el código de bytes.

over 4 years ago · Santiago Trujillo Denunciar

0

Collections no estaban allí en JAVA 1. Por lo tanto, Array era la opción predeterminada. Además, los argumentos proporcionados desde la línea de comandos están en formato de cadena, por lo que usamos Array<String> . Kotlin, para mantener la interoperabilidad con JAVA, siguió la misma convención. Pero, con la actualización a Kotlin 1.3, eso también se ha omitido. Ahora puede usar la función main() sin pasar args:Array<String> .

over 4 years ago · Santiago Trujillo Denunciar

0

La matriz contiene los argumentos de la línea de comandos pasados a su programa.

También puede omitirlo, si no desea usarlos, es decir, también puede simplemente escribir:

 fun main() { println("Hello, world!") }

Ya es demasiado tarde para vincular el JLS para Test.main aquí ( s1m0nw1 ya lo hizo ; me preparé y me fui ;-))

Sin embargo, quiero agregar algo con respecto a la elección de String (es decir, mi opinión de por qué se eligió String ): es probablemente el denominador más común para todos los posibles argumentos de la línea de comandos. Any Object / es demasiado amplio; solo puede pasar números o cadenas en la línea de comando a un programa (las tuberías se manejan de manera diferente). Pero tener un tipo de número es demasiado estrecho, por lo que el único tipo aceptable que queda es String que puede representar ambos. Todavía necesita analizar números si quiere usarlos, pero eso es mejor que interpretar una cadena de números ;-)

over 4 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda