列表[Nothing]无法附加到Scala中

时间:2017-11-16 15:21:04

标签: scala

有一个var,为什么它的var是因为它可以在预期的程序中更新。

var Encountered = List.empty

当我试图让它遇到需要添加字符串时,它会给我一个value += is not a member of List[Nothing]

     else{
      Encountered += (Name)

    }

2 个答案:

答案 0 :(得分:1)

首先,familiesEncountered += (familyName)不是在Scala中向列表添加元素的方法。

其次,明确说出类型:

var Encountered: List[String] = List.empty
Encountered =  "elem1" :: Encountered

另一种方式:

var encountered: List[String] = Nil
encountered =  "elem1" :: encountered

因为如果你这样做:

var Encountered = List.empty
Encountered =  "elem1" :: Encountered

它不会编译,因为如果你不说这种类型,列表的类型将是Encountered : List[Nothing]

答案 1 :(得分:0)

Scala List是scala.collection.immutable List 的别名,它是不可变的,所以它没有这个方法。

var是一个可以重新分配的变量,但它不会使它保持的对象变得可变。