Kotlin中println报Too many arguments传参过多错误的解决方法
Kotlin 调用println传多参数报Too many arguments错误解决
问题背景
学习Kotlin基础语法阶段,编写实现两数相加功能的简单控制台程序时,触发如下编译报错:
GODCalculator.kt: (18, 15):Too many arguments for public inline fun println(): Unit defined in kotlin.io
检索互联网公开解决方案未找到匹配的有效处理方法,使用的开发工具为IntelliJ IDEA Community Edition,当前在控制台环境下学习Kotlin语法,暂未接触Android开发。
问题相关原始代码
fun addition(){ println("So please insert two numbers, the program i mean the god will solve your math problem.") print("Number #1: "); val z = readLine()!!.toInt() print("\n") print("Number #2: "); val c = readLine()!!.toInt() val v = c+z println(z," + " ,c, " = ",v) }
尝试过的无效写法
先后测试两种写法均无法正常运行:
- 多参数逗号分隔传入
println
报错原因是Kotlin标准库提供的println(z," + " ,c, " = ",v)println()方法仅支持接收单个入参,不支持多参数逗号分隔传入自动拼接的调用方式,传入参数数量超过1就会触发上述编译错误。 - 用
+号拼接所有内容后传入
这种写法虽然能勉强通过编译,但可读性差,拼接不同类型变量时容易触发隐式类型转换问题,不属于Kotlin推荐的编码方式。println(z+" + "+c+" = "+v)
最终可行方案
使用Kotlin内置的字符串模板语法实现输出,既符合Kotlin编码规范,也不会触发参数数量错误:
println("$z + $c = $v")
内容的提问来源于stack exchange,提问作者QuCom
相关产品推荐
相关产品推荐

