Scala导入问题 – 错误:未找到:值
我是一名正在研究
Scala的Haskeller.我遇到的不是代码,而是导入/包.
我有两个文件,Test.scala和Lists.scala. // Lists.scala package problems object Lists { def last(list: List[Any]): Option[Any] = list match { case Nil => None case x :: Nil => Some(x) case _ :: xs => last(xs) } } 和: // Test.scala import problems._ object Test extends App { println("Starting tests...") println(last(List(1,2,3,4,5))) } Test.scala不编译.运行scalac Test.scala Lists.scala产生: Test.scala:5: error: not found: value last println(last(List(1,5)) 然而,重写为Lists.last使其成功.这不是打败导入问题的重点._通配符?我注意到数学函数可以在没有前面的数学的情况下编写.通过导入math._.为什么这对我的文件也不起作用? 真正的目标:我只想创建一个包,然后在另一个文件中使用println轻松测试其功能.最好的方法是什么?我是否可以取消Test.scala中的对象{…}并使用scala运行它,放弃编译过程? 解决方法
不,不是的.通过使用通配符,您将该包中的所有类/对象放入范围,而不是其内容.
它会工作,但你需要一个适当的导入:import problems.Lists._.否则,您可以将功能放入package object. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |