3

我是 scala 学习集合的新学习者。我想将我的参数添加到集合中,然后从函数中返回它。

def singleElementSet(elem: Int): Set ={
    var newSet = Set()
    newSet+= elem
  }

我试过这个,但它给了我这样的错误:

type Set takes type parameters
- type Set takes type parameters

为元素

type mismatch;  found   : elem.type (with underlying type Int)  required: Nothing
4

2 回答 2

3

在您的示例中,您必须通过 Set[Int] 定义 Set 在其中包含的内容。创建新 Set 时,您必须像这样指定它的类型:

val newSet = Set.empty[Int]

或使用以下内容初始化 Set:

val newSet = Set(1)

但是,您可能必须使用 var 或可变 Set 来完成很多工作。例如,您的代码应如下所示:

var newSet = Set.empty[Int]
def singleElementSet(elem: Int): Set[Int] = {
    newSet+= elem
}

(不能在每次调用方法时都将 Set 定义为空 Set,否则结果不会累加)

于 2012-10-04T19:55:50.330 回答
2

我想你想要的是

def singleElementSet(elem: Int): Set[Int] = {
    val newSet = Set.empty[Int]
    newSet + elem
}

或者你可以直接创建集合

def singleElementSet(elem: Int) = Set(elem)
于 2012-10-07T23:37:17.437 回答