gpt4 book ai didi

没有类型注释的 Kotlin 函数参数

转载 作者:行者123 更新时间:2023-12-02 09:40:26 25 4
gpt4 key购买 nike

在 Kotlin 上,定义方法时函数的参数需要其类型注释。

就我而言,我有两个来自接口(interface)的类。

interface Base{
fun method()
}

class DervA():Base{
fun override method(){
...
}
}

class DervB():Base{
fun override method(){
...
}
}

而且,我希望从其他函数调用他们的方法,例如

fun test_method(inst){
inst.method()
}

但是,Kotlin 编译器提示“值参数上需要类型注释”。

我应该为每个类定义“test_method”吗?

fun test_method_for_DervA(inst:DervA){
inst.method()
}

fun test_method_for_DervB(inst:DervB){
inst.method()
}

你有什么更聪明的方法吗?

最佳答案

你可以这样做

fun testMethod(inst: Base) {
inst.method()
}

由于 DervADervB 都是 Base,因此它们也可以传递给 testMethod 及其重写将调用方法。这是 OOP 的基本原则之一。

<小时/>

请注意,如果 methodtestMethod 具有相同的返回类型,您可以将其缩短为

fun testMethod(inst: Base) = inst.method()

关于没有类型注释的 Kotlin 函数参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47141388/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com