You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Kotlin如何传入整型数组作为参数并正确打印数组首元素

代码存在的问题

这段代码无法运行,是因为三处语法/规则不符合Kotlin要求:

  • 作为程序入口的main函数有固定签名,JVM平台下仅支持无参,或者参数为Array<String>(字符串数组,用来接收命令行输入参数)的形式,你把入口参数定义为Array<Int>本身就不符合规范。
  • Kotlin没有提供方括号直接创建数组的语法,[12,3,4,5]这种写法在Kotlin里无法通过编译,创建整型数组需要使用intArrayOf()、arrayOf<Int>()这类内置工厂函数。
  • 就算你是想写一个自定义的、接收整型数组的普通函数(哪怕函数名也叫main),传参时的数组写法错误也会直接导致编译失败。
正确实现方式

写法1:完全贴合你原始代码思路

Kotlin支持函数重载,你可以保留名为main的自定义函数,只需要修正数组创建语法、区分开程序入口main即可:

// 你自定义的、接收整型数组的main函数,属于普通功能函数
fun main(args: IntArray) {
    println(args[0])
}

// 无参的main是程序启动的固定入口,所有Kotlin程序启动都会从这里开始执行
fun main() {
    // Kotlin用intArrayOf创建整型数组,替代你原来写的[12,3,4,5]
    main(intArrayOf(12, 3, 4, 5))
}

运行这段代码会直接输出12,完全符合你要的效果。

写法2:通过命令行参数传值

如果你是想在程序启动时通过命令行传入数字参数,就要遵守入口main函数的参数规则,把传入的字符串参数转成整型即可:

// 入口main的参数固定是字符串数组类型,不能修改为Int数组
fun main(args: Array<String>) {
    // 取出第一个传入的参数,转为Int后打印
    println(args[0].toInt())
}

启动程序时在命令行拼接参数即可,比如执行java -jar 你的程序包.jar 12 3 4 5,同样会输出第一个数字12。

内容的提问来源于stack exchange,提问作者Khant

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.28 16:21:33