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

如何让Kotlin的vararg参数至少接收一个实参?

让Kotlin的vararg函数强制接收至少一个实参

有两种可行的处理方式,推荐优先使用编译时校验的方案:

方案一:拆分参数(编译时强制校验)

将第一个参数单独声明,剩余可选参数用vararg修饰,编译器会直接强制要求调用时至少传入第一个参数:

fun qwer(first: String, vararg rest: String) {
    // 如需合并所有参数,可直接拼接成列表使用
    val allArgs = listOf(first) + rest
}

fun main() {
    qwer("hello") // 合法调用
    qwer("hello", "world", "foo") // 合法调用
    // qwer() // 编译报错,必须传入至少一个参数
}

这种方式能在编译阶段就拦截非法调用,是最安全且符合Kotlin设计习惯的方案。

方案二:运行时参数校验

如果不想修改函数签名,可以在函数内部通过require做运行时检查,但这种方式只能在运行时抛出错误,无法提前在编译阶段拦截:

fun qwer(vararg x: String) {
    require(x.isNotEmpty()) { "必须传入至少一个字符串参数" }
    // 后续业务逻辑
}

fun main() {
    qwer() // 运行时抛出IllegalArgumentException
    qwer("test") // 正常执行
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.24 23:09:53