加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

特定尺寸或更大/更小的图案匹配列表

发布时间:2020-12-16 09:13:49 所属栏目:安全 来源:网络整理
导读:有没有办法指定与 Scala中大小(或更小)或等于某个值的List匹配的模式? 例如,如果我想对3或更小的所有列表应用相同的操作: list match { case Nil = op(list) case x :: Nil = op(list) case x :: y :: Nil = op(list) case x :: y :: z :: Nil = op(list)
有没有办法指定与 Scala中大小(或更小)或等于某个值的List匹配的模式?

例如,如果我想对3或更小的所有列表应用相同的操作:

list match {
    case Nil => op(list) 
    case x :: Nil => op(list)
    case x :: y :: Nil => op(list)
    case x :: y :: z :: Nil => op(list)
    case x :: tail => other(list)
}

有没有办法减少这两种情况?

解决方法

是的,虽然你需要扭转案例的顺序:

list match {
  case l @ (_ :: _ :: _ :: _) => other(l)
  case l => op(l)
}

注意,我已经在模式列表中绑定了一个新的变量l,而不是引用列表,当我不需要一个变量时,我已经使用了_.我建议坚持这两个做法,但如果没有这些做法,答案将是完全一样的.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读