如何在Scala中实例化Unit?

彼得贝尔

我想要的只是使用一些并发Set(看起来根本不存在)。Java用于java.util.concurrent.ConcurrentHashMap<K, Void>实现该行为。我想在Scala中做类似的事情,所以我创建了Scala HashMap(或Java ConcurrentHashMap)实例,并尝试添加一些元组:

val myMap = new HashMap[String, Unit]()
myMap + (("myStringKey", Unit))

当然,由于Unit是抽象的也是最终的,因此这使编译过程崩溃了。

如何使这项工作?我应该使用Any/AnyRef代替吗?我必须确保没有人插入任何值。

感谢帮助

结束新

您可以只使用()其类型为Unit

scala> import scala.collection.mutable.HashMap
import scala.collection.mutable.HashMap

scala> val myMap = new HashMap[String, Unit]()
myMap: scala.collection.mutable.HashMap[String,Unit] = Map()

scala> myMap + ("myStringKey" -> ())
res1: scala.collection.mutable.Map[String,Unit] = Map(myStringKey -> ())

这是摘自的评论Unit.scala

类型Unit仅有一个值(),并且底层运行时系统中的任何对象均未表示该值。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章