在Scala中如何在同一文件中使用可变集和不可变集

在Scala中如何在同一文件中使用可变集和不可变集,scala,set,Scala,Set,假设集合的默认实现是不可变的: val Set = immutable.Set 为了使其可变,需要导入 import scala.collection.mutable.Set; 如果需要在给定文件中同时使用可变集和不可变集,应如何操作?导入符号时,可以重命名符号 import scala.collection.mutable.{Set => MutableSet} 当您需要在同一个文件中同时使用可变集合和不可变集合时,规范解决方案就是显式地使用mutable或immutable作为前

假设集合的默认实现是不可变的:

val Set = immutable.Set
为了使其可变,需要导入

import scala.collection.mutable.Set;

如果需要在给定文件中同时使用可变集和不可变集,应如何操作?

导入符号时,可以重命名符号

import scala.collection.mutable.{Set => MutableSet}

当您需要在同一个文件中同时使用可变集合和不可变集合时,规范解决方案就是显式地使用
mutable
immutable
作为前缀

import collection._

val myMutableSet: mutable.Set[Int] = mutable.Set(1, 2, 3)
val myImmutableSet: immutable.Set[Int] = immutable.Set(1, 2, 3)
正如Kim Stebel在回答中提到的,您还可以使用重命名导入:

import scala.collection.mutable.{Set => MutableSet}

但是
mutable.Set
只比
MutableSet
多一个字符,并且没有引入任何新名称,因此您最好使用前一种形式。

对。假设你必须在整个程序中交替使用不同的集合。您如何向编译器表明此
是可变集,而
不是可变集?我不知道您的意思。您在.scala文件中声明了几个变量,并希望var a={mutable Set},var b={immutable Set}。请问怎么做?var a=Set(…);var b=MutableSet(…)
MutableSet
不是Scala中的一个类,是吗?