scala之编译器说我没有为 Set 指定类型(类型不匹配)

bhlsheji 阅读:19 2024-11-01 17:39:52 评论:0

我是 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 

请您参考如下方法:

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

val newSet = Set.empty[Int] 

或者用一些东西初始化集合:

val newSet = Set(1) 

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

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

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


标签:Scala
声明

1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,请转载时务必注明文章作者和来源,不尊重原创的行为我们将追究责任;3.作者投稿可能会经我们编辑修改或补充。

关注我们

一个IT知识分享的公众号