2012-03-29 10 views

回答

8

方法名是右关联,所以b :: "apple"试图调用一个字符串,不存在::方法。

如果您必须使用List,则附加内容的正常策略是在完成时将结果添加到开头,然后reverse结果。但正如Rex所说,使用Vector可能会更好。

+0

啊,我明白了,谢谢!我想知道为什么它给了我那个字符串错误,我认为它是在做什么。所以第二:在::使它正确的联想? – Andy 2012-03-29 14:26:24

+0

没错,就是这样。 – 2012-03-29 14:31:12

6

::总是加入一个新的项目列表的头部。添加项目到年底可以做到的,但是这需要时间成正比的名单(因为整个列表不仅要穿越但实际上,又重修)的长度。

如果你真的必须将项目添加到列表的末尾,使用:+

List("pear","orange") :+ "apple" 

更重要的是,使用Vector当你需要添加到末尾(它的速度更快的双端增加):在:结束

Vector("grape","peach") :+ "apple" 
0

另一种可能性是明确添加Nil到链的末端:

scala> val a = "apple" 
a: java.lang.String = apple 

scala> val b = "pear" 
b: java.lang.String = pear 

scala> a::b::Nil 
res0: List[java.lang.String] = List(apple, pear) 
+0

如果你有一个列表'VAL XS =名单(1,2,3)'来要追加,则需要在列表append方法'':::这种技术:'XS ::: 4 :: Nil'。 – 2012-03-29 22:00:25

相关问题