"bar")) x: Some[scala.collectio-6ren">
gpt4 book ai didi

scala - `.get(“key” )` on a `选项[Map [String,String]]`如何工作

转载 作者:行者123 更新时间:2023-12-04 13:48:09 25 4
gpt4 key购买 nike

当我这样创建一个Option[Map[String,String]]

scala> val x = Some(Map("foo" -> "bar"))
x: Some[scala.collection.immutable.Map[String,String]] = Some(Map(foo -> bar))

为什么此调用有效:
scala> x.get("foo")
res0: String = bar

由于 x是实例 Option,并且没有方法 get接受 case class Some上的参数并且该类是final,因此这不起作用。 IDE并未提供任何提示,这为何起作用。

最佳答案

Option具有没有参数列表的get方法。您可以仅使用名称get而不使用参数列表来调用它:

scala> val x = Some(Map("foo" -> "bar"))
x: Some[scala.collection.immutable.Map[String,String]] = Some(Map(foo -> bar))

scala> x.get // Note: no arguments
res0: scala.collection.immutable.Map[String,String] = Map(foo -> bar)

很明显,您得到的是 Map
("foo")之后的 get应用于 Map。请注意,这是在 apply上调用 Map方法的快捷方式语法。因此, x.get("foo")等效于 x.get.apply("foo")
scala> x.get("foo")  // Shortcut syntax
res2: String = bar

scala> x.get.apply("foo") // For this
res3: String = bar

关于scala - `.get(“key” )` on a `选项[Map [String,String]]`如何工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35653828/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com