初始化一个空元组 scala

问题描述 投票:0回答:1

我想在scala中创建一个可变元组。(String, Set[String]).而之前我想先把它初始化为一个空值,然后再添加到它上面去

集合不能被初始化为空集合。 String也是一样,我得到一个错误信息说 class java.lang.String is not a value 有什么简单的方法可以做到这一点? 我做错了什么?

string scala initialization tuples is-empty
1个回答
4
投票

Set 可以这样定义

Set.empty[String]   // because assert(Set.empty[String].isEmpty)

空的 String 可以这样定义

""                  // because assert("".isEmpty)

空元组 并不是Scala建模为 TupleN我想。相反,它使用 Unit 类型为它。也许你正在寻找这样的东西

val ta: (String, Set[String]) = ("", Set.empty)
val tb: (Option[String], Option[Set[String]]) = (None, None)
val tc: Option[(String, Set[String])] = None

错误信息

class java.lang.String is not a value

意味着你使用的是一个预期值的类型,例如,考虑一下在

Set[String]    // ok
Set(String)    // error
© www.soinside.com 2019 - 2024. All rights reserved.