【问题标题】:Type mismatch in scala while using eclipse使用eclipse时在scala中输入不匹配
【发布时间】:2014-05-13 07:07:19
【问题描述】:
package week1
import math.abs
object newton {
    def abs(x:Double) = if (x < 0) -x else x

    def sqrtIter(guess: Double, x: Double): Double =
        if (isGoodEnough(guess, x)) guess
        else sqrtIter(improve(guess, x), x)

    def isGoodEnough(guess: Double, x: Double)=
        abs(guess*guess - x  < 0.001)

    def improve(guess: Double, x: Double) =
        (guess + x/guess)/2

    def sqrt (x:Double)= sqrtIter(1.0,x)

}

一行

abs (guess*guess - x <0.001)

eclipse 显示如下错误

类型不匹配;发现:需要布尔值:双 newton.sc /progfun/src/week1 第 10 行 Scala 问题

我该如何解决这个问题?这是我第一次运行 scala,我正在使用 Coursera 目前正在进行的函数式编程课程的确切代码。

【问题讨论】:

  • 也不知道为什么你导入math.abs只是为了以后定义你自己的abs函数...

标签: eclipse scala


【解决方案1】:

这一行

abs (guess*guess - x <0.001)

返回一个布尔值,因为它首先计算guess*guess - x,然后将其与0.001进行比较。

你应该这样做

abs (guess*guess - x) < 0.001

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-10-20
    • 2011-10-19
    • 1970-01-01
    • 2017-10-31
    • 2014-08-06
    • 2016-01-29
    • 2011-03-07
    相关资源
    最近更新 更多