gpt4 book ai didi

scala - 检查一个值是否等于字符串或者是包含字符串的数组

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

Scala 映射包含一个键 X。该值可以是字符串数组 Array("Y")或一个简单的字符串对象,"Y"。我需要从 map 中检索值并进行测试

如果该值是字符串,

mayMap("X")=="Y"

或者,如果该值是一个数组。

myMap("X").contains("Y")

我不想使用 if 语句首先检查值的类型。一种选择是编写一个检查值的函数,如果它是一个数组,则返回该数组,否则创建一个包含映射中包含的单个字符串元素的数组。那么调用将是:

myToArrayFunction(myMap("X")).contains("Y")

这就是我在 Java 中实际做的事情。

但这是 Scala。有没有更好的习惯用法可以使用预先存在的函数在一行中完成此操作?

最佳答案

这应该有效:

myMap.get("X") match {
case None => println("oh snap!")
case Some(x) => x match {
case i: String => println(s"hooray for my String $i") // do something with your String here
case a: Array[String] => println(s"It's an Array $a") // do something with your Array here
}
}

关于scala - 检查一个值是否等于字符串或者是包含字符串的数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43994045/

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