kotlin - Kotlin中多态函数中的参数定位
问题描述
我是 kotlin 的新手,我想要两个带有默认参数的多态函数,但它似乎不起作用。这是我的代码:
private fun add(request: Request, share: Boolean = false, number : Int){
Do something ...
}
private fun add(key: String, share: Boolean = false){
Do something ...
}
我的问题是我不能使用默认值,因为编译器似乎没有推断出它。
add(request, number)
当我这样做时,这意味着我想使用第一个函数和布尔值的默认值,我收到一个错误,说它需要一个字符串并且它找到了一个请求。
我认为编译器与默认值和多态性混淆了;它似乎不知道要使用的女巫功能。有什么方法可以解决这个问题,还是我每次都必须明确声明默认值,使默认值无用?
解决方案
将具有默认值的参数移动到第一个函数的第 3 位,使其变为
private fun add(request: Request, number : Int, share: Boolean = false){
Do something ...
它会起作用的。您可以通过命名参数解决此问题,例如,如果您调用add(request = request, number = number)
它也可以
推荐阅读
- podman - 无法使用 allow_host_loopback=true 解析 DNS
- assembly - 在 x86 程序集中存储大量布尔值的最佳方法是什么?
- ios - RotationGestureHandler react-native-gesture-handler:如何只用一根手指激活旋转手势?
- node.js - 没有为 null 类型定义协议方法 IDeref.-deref
- reactjs - docker 程序未检测到卷更改
- flutter - Flutter OnTap Listview 项
- javascript - Javascript innerHTML 被自动覆盖并失效
- jenkins-pipeline - 在 Jenkins-Openshift 容器中执行 Cypress 测试
- html - 尝试在 CSS 中的下拉选择中更改悬停时的选项背景颜色
- ios - iPad 在多任务处理 Slide Over (SwiftUI/UIKit) 中的键盘安全区域错误