第一个清单
val l1 = List(("A",12,13),("B",122,123),("C",1212,123))
寻找字符串
val l2 = "A"
如果字符串"A"
出现在列表中,则在上述情况下显示匹配数据,如果字符串"A"
匹配则输出将是
12
其他字符串不匹配,则仅显示0
答案 0 :(得分:4)
找到第一场比赛;检索连音符的第二部分或0
l1.find(_._1 == "A").map(_._2).getOrElse(0)
答案 1 :(得分:2)
scala模式匹配中存在一些讨厌的规则,如果某个变量以大写字母开头,它与其值匹配,那么您可以将val l2 = "A"
重命名为val L2 = "A"
以下内容会工作 -
scala> l1.collectFirst{ case (L2, i, _) => i }.getOrElse(0)
res0: Int = 12
答案 2 :(得分:0)
l1.find(_._1 == l2).map(_._2).getOrElse(0)
或更详细的版本
l1.find(a => a._1 == l2).map(a => a._2).getOrElse(0)
答案 3 :(得分:0)
使用for comprehension解决方案可以重新配置为匹配元组中的返回第二个元素,否则如果没有找到匹配则返回空列表,即
for ( (s,i,j) <- l1 if s == l2) yield i
提供
List(12)