Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

261
Views
¿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 answers
Answer question

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 Report

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 Report

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 Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!