Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

271
Visualizações
¿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 Respostas
Responde à pergunta

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 Relatório

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 Relatório

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 Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda