gpt4 book ai didi

int - Kotlin 编译错误 : None of the following functions can be called with the arguments supplied

转载 作者:IT老高 更新时间:2023-10-28 13:35:57 39 4
gpt4 key购买 nike

我有一个类,它的构造函数接受 2 个 int 参数(允许空值)。 以下是编译错误。

None of the following functions can be called with the arguments supplied: 
public final operator fun plus(other: Byte): Int defined in kotlin.Int
public final operator fun plus(other: Double): Double defined in kotlin.Int
public final operator fun plus(other: Float): Float defined in kotlin.Int
public final operator fun plus(other: Int): Int defined in kotlin.Int
public final operator fun plus(other: Long): Long defined in kotlin.Int
public final operator fun plus(other: Short): Int defined in kotlin.Int

这里是 NumberAdder 类。

class NumberAdder (num1 : Int?, num2 : Int?) {

var first : Int? = null
var second : Int? = null

init{
first = num1
second = num2
}

fun add() : Int?{

if(first != null && second != null){
return first + second
}

if(first == null){
return second
}

if(second == null){
return first
}

return null
}

}

我该如何解决这个问题?如果两者都为null,我想返回null。如果其中一个为空,则返回另一个,否则返回总和。

最佳答案

因为 firstsecond 是 vars,所以在进行 if 测试时,它们不会被智能转换为非 null 类型。理论上,值可以在 if-test 之后和 + 之前由另一个线程更改。为了解决这个问题,您可以在执行 if-tests 之前将它们分配给本地 val。

fun add() : Int? {
val f = first
val s = second

if (f != null && s != null) {
return f + s
}

if (f == null) {
return s
}

if (s == null) {
return f
}

return null
}

关于int - Kotlin 编译错误 : None of the following functions can be called with the arguments supplied,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44255630/

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