当前位置: 首页 > 面试题库 >

如何在Scala中实例化Unit?

翁和正
2023-03-14
问题内容

我想要的只是使用一些并发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,仅有一个值(),并且底层运行时系统中的任何对象均未表示该值。



 类似资料:
  • 问题内容: 我是编程的新手,我想知道实例化对象时哪里出错了。下面是代码: 问题答案: 您的代码中没有类。您声明的是私有方法。 使用当前代码段,您需要实例化该类并利用该方法。注意,在这种情况下,您的类定义前面有关键字 class。 但这并没有实际意义,您的方法总是会返回。 您是否正在尝试执行以下操作:

  • 问题内容: 我使用,在我的应用程序中添加了易于阅读的配置文件,并试图在该文件周围添加包装器,以简化类型转换。具体来说,我希望返回的值从提供的默认值开始“继承”它的类型。到目前为止,这是我得到的: (完整示例来源。) 不管是否从属性文件中读取返回值,from的返回值都是一个布尔值,对于字符串,整数,双精度数和&c而言,返回值都类似。当然,上面的代码片段实际上并没有编译: 我做错了吗,还是我只是试图做

  • 当尝试在模拟器上运行简单的应用程序时,我一直收到以下错误消息,但我不知道为什么。非常感谢任何帮助: 2022-01-19 21:00:38.935 13581-13581/com。圆圈。circle_beta E/AndroidRuntime:致命异常:主进程:com。圆圈。circle_beta,PID:13581 java。util。ServiceConfigurationError:org。

  • 我试图从Java实例化一个嵌套的泛型Scala类,并遇到了这个编译错误。有人能帮忙吗?谢谢 $javac-sctest。JAVA

  • 问题内容: 当我尝试: 编译器给我一个错误。有什么帮助吗? 另外,如果要初始化队列,是否必须实现队列的方法? 问题答案: A 是一个接口,这意味着您不能直接构造一个。 最好的办法是建立关闭一类已经实现了接口,像下面的一个:,,,,,,,,,或。 一种替代方法是编写您自己的类,该类实现必要的Queue接口。除非在极少数情况下您希望在为程序的其余部分提供的同时做一些特别的事情,否则不需要它。 更少使用

  • 问题内容: JavaScript中有一个对象。我想实例化一个用于测试目的。 我已经尝试过,但是出现“非法构造函数”错误。 是否可以创建对象? 问题答案: 根据W3C File API规范,File构造函数需要2(或3)个参数。 因此,要创建一个空文件,请执行以下操作: 第一个参数是作为文本行数组提供的数据; 第二个参数是文件名; 第三个参数如下: 它适用于FireFox,Chrome和Opera,