Function 奇怪的编译器错误:找到了单位,我试图返回一个双精度
我的代码:Function 奇怪的编译器错误:找到了单位,我试图返回一个双精度,function,scala,recursion,Function,Scala,Recursion,我的代码: def power(x: Double, n: Int): Double = { if (n % 2 == 0 && n > 0) power(power(x, n/2), 2) else if (n % 2 == 1 && n > 0) x * power(x, n - 1) else if (n == 0) 1 else if (n < 0) 1 / power(x, -n) } println(power(2,
def power(x: Double, n: Int): Double = {
if (n % 2 == 0 && n > 0) power(power(x, n/2), 2)
else if (n % 2 == 1 && n > 0) x * power(x, n - 1)
else if (n == 0) 1
else if (n < 0) 1 / power(x, -n)
}
println(power(2, 2))
def功率(x:Double,n:Int):Double={
如果(n%2==0&&n>0)幂(幂(x,n/2),则为2)
如果(n%2==1&&n>0)x*幂(x,n-1)
如果(n==0)1
否则如果(n<0)1/幂(x,-n)
}
println(电源(2,2))
终端:
$ scala ch2ex10.scala
/scala/impatient/ch2ex10.scala:5: error: type mismatch;
found : Unit
required: Double
else if (n < 0) 1 / power(x, -n)
$scala ch2ex10.scala
/scala/ancerte/ch2ex10.scala:5:错误:类型不匹配;
发现:单位
所需:双人
否则如果(n<0)1/幂(x,-n)
这个装置是从哪里来的
谢谢 它来自块中最后一个“else if”
看起来并不是所有的可能性都用尽了。如果没有其他可能性(这里正好是这种情况),就写下来
else 1 / power(x, -n)
如果有另一种可能性,你需要写信
else if (n < 0) 1 / power(x, -n)
else ...
给你。它来自块中最后一个“else if”
看起来并不是所有的可能性都用尽了。如果没有其他可能性(这里正好是这种情况),就写下来
else 1 / power(x, -n)
如果有另一种可能性,你需要写信
else if (n < 0) 1 / power(x, -n)
else ...
为您。我允许自己更改错误消息,在我看来,这似乎过于局限于与错误偶然相关的内容,这可能非常常见,并且发生在完全不同的情况下-与电源功能完全无关。当然,找出错误的原因后,很容易看出这一点。但对于未来的访问者来说,这可能会帮助他们找到解决方案。我允许自己更改错误消息,在我看来,这似乎过于局限于与错误偶然相关的内容,这可能非常常见,并且发生在完全不同的情况下-与电源功能完全无关。当然,找出错误的原因后,很容易看出这一点。但对于未来的访问者来说,这可能会帮助他们找到解决方案。