Scala Map#获取和返回Some()
发布时间:2020-12-16 09:22:31 所属栏目:安全 来源:网络整理
导读:Im使用scala Map#get函数,并且对于每个准确的查询,它返回为Some [String] 有没有一个简单的方法来删除一些? 例: def searchDefs{ print("What Word would you like defined? ") val selection = readLine println(selection + ":nt" + definitionMap.get
Im使用scala Map#get函数,并且对于每个准确的查询,它返回为Some [String]
有没有一个简单的方法来删除一些? 例: def searchDefs{ print("What Word would you like defined? ") val selection = readLine println(selection + ":nt" + definitionMap.get(selection)) } 当我使用此方法并使用以下输入: What Word would you like defined? Ontology 返回值为: Ontology: Some(A set of representational primitives with which to model a domain of knowledge or discourse.) 我想删除Some()周围. 任何提示? 解决方法
有很多方法来处理Option类型.首先,但是,确实意识到有更好的是,而不是一个潜在的空参考!不要试图摆脱它,因为你习惯了Java如何工作.
正如其他人最近所说:坚持几个星期,每次你必须回到不提供选项类型的语言时,你会呻吟. 现在,对于你的问题,最简单和最危险的方法是: mymap.get(something).get 在一个对象上调用.get检索内部的对象.但是,如果您有一个None(例如,如果该键不在您的地图中),它会给您一个运行时异常. 一个更清洁的方法是使用Option.foreach或Option.map,如下所示: scala> val map = Map(1 -> 2) map: scala.collection.immutable.Map[Int,Int] = Map(1 -> 2) scala> map.get(1).foreach( i => println("Got: " + i)) Got: 2 scala> map.get(2).foreach( i => println("Got: " + i)) scala> 您可以看到,这可以让您执行一个声明,当且仅当您具有实际值.如果选项为None,则不会发生任何事情. 最后,在这样的选项类型上使用模式匹配也很受欢迎: scala> map.get(1) match { | case Some(i) => println("Got something") | case None => println("Got nothing") | } Got something (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |