Scala Singleton没有按预期工作

Kar*_*120 1 singleton scala

Main.scala:

package controler

object Main {
    def main(args: Array[String]) {
      import Utilites._
      isJavaUpToDate
    }
}
Run Code Online (Sandbox Code Playgroud)

Utilites.scala:

package controler

object Utilities {
  def isJavaUpToDate = { 
    val javaVersion = augmentString(System.getProperty("java.version").substring(2, 3))
    javaVersion >= 6 
  }
}
Run Code Online (Sandbox Code Playgroud)

为什么这不起作用?我已经进行了一系列不同的教程网站,这没有问题.

我总是说无法找到val Utilites.

PS为什么它只是在破坏代码时使用augmentString()来改变.toInt.

现在这给了我麻烦,一些关于隐式排序和方法orderTOOrdered.

fre*_*oma 5

在您的main方法中,您已键入Utilites要键入的位置Utilities.

Correct: Utilities
Wrong:   Utilites
Run Code Online (Sandbox Code Playgroud)

注意缺失i:)并且因为你的大脑是一个强大的拼写纠正工具,它假装拼写是正确的.但是,Scala编译器并不酷;)


另外,对我来说,以下不起作用:

scala> augmentString(System.getProperty("java.version").substring(2, 3)) >= 5
<console>:15: error: No implicit Ordering defined for AnyVal.
          augmentString(System.getProperty("java.version").substring(2, 3)) >= 5
Run Code Online (Sandbox Code Playgroud)

相反,我用它替换它

System.getProperty("java.version").substring(2, 3)).toInt >= 5
Run Code Online (Sandbox Code Playgroud)

你与前代码经历隐含的排序问题是,因为Scala不知道如何申请>=方法/操作的类型scala.collection.immutable.StringOps,其augmentString()返回.