我是Scala的新手,我遇到了问题。 我的代码:
object testObject {
def last[A](xs:List[A]):A =
if (xs == Nil) throw new Exception("empty")
else (xs.reverse).head
def main(args: Array[String]){
println("Hello, world!")
last(List(1,2,3,4))
}
}
并且解释者说:
<console>:8: error: not found: value last
last(List(1,2,3,4))
^
我点击了&#34;在scala解释器中运行选择&#34;在Eclipse中
答案 0 :(得分:1)
抱歉,我原本误读了你的问题。如果我只是将你的代码复制到Scala REPL中,一切似乎都运行正常。你有同样的尝试吗?
但有些一般要点:
(x.reverse).head
,x.reverse.head
也可以。main
的参数未在正文中使用,因此可以省略。last
的调用将返回列表的最后一个元素,但之后不再使用它。答案 1 :(得分:1)
适合我:
Welcome to Scala version 2.10.2 (Java HotSpot(TM) 64-Bit Server VM, Java 1.7.0_25).
Type in expressions to have them evaluated.
Type :help for more information.
scala> object testObject {
|
| def last[A](xs:List[A]):A =
| if (xs == Nil) throw new Exception("empty")
| else (xs.reverse).head
|
| def main(args: Array[String]){
| println("Hello, world!")
| last(List(1,2,3,4))
| }
| }
defined module testObject
scala> testObject.main(new Array[String](0))
Hello, world!
所以它必须与你如何运行它有关。我的猜测:你点击了#34;运行选择&#34;并且只选择了last
的调用行。尝试将testObject
类型作为主程序运行。 (在IntelliJ IDEA中,这将右键单击编辑器并选择&#34;运行&#39; testObject&#39;&#34;。不确定它在Eclipse中是如何工作的,但它不能那不同。)