Kotlin中如何实现函数参数传入前自动转换再执行函数?
实现方案:自动转换参数后执行原函数逻辑
当然可行!在Kotlin里,你可以通过重载函数的方式完美实现这个精确的执行流程,完全贴合你想要的「先调用getStringOfNumber转换参数,再执行printString原函数体」的需求。
具体实现代码
// 保留你定义的两个原始函数 fun getStringOfNumber(number: Int): String { return number.toString() } fun printString(str: String) { println(str) } // 新增一个接收Int类型参数的重载函数 fun printString(number: Int) { // 第一步:用传入的Int参数调用getStringOfNumber完成转换 val convertedString = getStringOfNumber(number) // 第二步:将转换后的String传入原printString函数,执行原逻辑 printString(convertedString) }
执行流程验证
当你调用printString(5)时:
- 首先会匹配到我们新增的
printString(Int)重载函数 - 函数内部先调用
getStringOfNumber(5)得到字符串"5" - 接着调用原始的
printString(String)函数,执行println("5")输出结果
这种方式的优势在于:
- 完全复用了原函数的逻辑,避免重复编写
println代码 - 调用方不需要做任何额外处理,直接写
printString(5)即可,符合你的使用预期 - 流程完全按照你要求的顺序执行,没有多余步骤
如果你不想用重载,也可以考虑用高阶函数包装原函数,但重载是最直观、最贴合你需求的方案。
内容的提问来源于stack exchange,提问作者vt-dev0
相关产品推荐
相关产品推荐

