PatternMatching

object PatternMatching {
  def main(args: Array[String]): Unit = {
    val x = List(1, 2, 3, 4, 5) match {
      case ::(x, ::(2, ::(4, _)))        => x
      case Nil                           => 42
      case ::(x, ::(y, ::(3, ::(4, _)))) => x + y
      case ::(h, t)                      => h + t.sum
      case _                             => 101
    }
    println(x)
  }
}
3
时间: 2024-10-22 03:13:02

PatternMatching的相关文章

pattern-matching as an expression without a prior match -scala

https://www.scala-lang.org/files/archive/spec/2.11/08-pattern-matching.html https://docs.scala-lang.org/tour/pattern-matching.html https://danielwestheide.com/blog/2012/12/12/the-neophytes-guide-to-scala-part-4-pattern-matching-anonymous-functions.ht

Scala入门到精通——第二十五节 提取器(Extractor)

作者:摇摆少年梦 视频地址:http://www.xuetuwuyou.com/course/12 本节主要内容 apply与unapply方法 零变量或变量的模式匹配 提取器与序列模式 scala中的占位符使用总结 1. apply与unapply方法 apply方法我们已经非常熟悉了,它帮助我们无需new操作就可以创建对象,而unapply方法则用于析构出对象,在模式匹配中特别提到,如果一个类要能够应用于模式匹配当中,必须将类声明为case class,因为一旦被定义为case class,

Pub/Sub 发布订阅

Related commands 相关命令 PSUBSCRIBE PUBLISH PUBSUB PUNSUBSCRIBE SUBSCRIBE UNSUBSCRIBE Pub/Sub SUBSCRIBE, UNSUBSCRIBE and PUBLISH implement the Publish/Subscribe messaging paradigm where (citing Wikipedia) senders (publishers) are not programmed to send

Python 3 mysql-数据类型

Python 3 mysql 数据类型 存储引擎决定了表的类型,而表内存放的数据也要有不同的类型,每种数据类型都有自己的宽度,但宽度是可选的 详细参考: http://www.runoob.com/mysql/mysql-data-types.html http://dev.mysql.com/doc/refman/5.7/en/data-type-overview.html 一. 介绍 mysql数据类型概览 1. 数字: 整型:tinyinit int bigint 小数: float :在

进击的雨燕---------------控制流

Swift 提供了类似 C 语言的流程控制结构,包括可以多次执行任务的for和while循环,基于特定条件选择执行不同代码分支的if.guard和switch语句,还有控制流程跳转到其他代码的break和continue语句. 除了 C 语言里面传统的 for 循环,Swift 还增加了for-in循环,用来更简单地遍历数组(array),字典(dictionary),区间(range),字符串(string)和其他序列类型. Swift 的switch语句比 C 语言中更加强大.在 C 语言中

控制流

http://numbbbbb.gitbooks.io/-the-swift-programming-language-/content/chapter2/05_Control_Flow.html 本页包含内容: For 循环 While 循环 条件语句 控制转移语句(Control Transfer Statements) Swift提供了类似 C 语言的流程控制结构,包括可以多次执行任务的for和while循环,基于特定条件选择执行不同代码分支的if和switch语句,还有控制流程跳转到其他

Java101系列文章

Java101 的意思是Java入门课程,因为美国很多入门课程就叫101.比如著名的 CS101,计算机科学入门 原网站相关的链接地址如下: 分类列表: http://www.javaworld.com/blog/java-101/ 使用如下的JS在控制台提取数据: var c = $(".post-cont"); var h = c.find("h3"); var a = h.find("a"); // var nodes = []; !a.e

BASH基础特性

对BASH做一下总结 一.命令历史特性: history shell进程会其会话中保存此前用户提交执行过的命令 history是shell的内置命令 1. 命令语法格式: history [-c] [-d OFFSET] [n] history -anrw [FILENAME] history -ps VALUE [VALUE...] -c: 清空命令历史: -d offset(偏移量):删除指定命令历史,offset为history显示出来的命令数字 -r: 从文件读取命令历史至历史列表中:

The Swift Programming Language-官方教程精译Swift(6)控制流--Control Flow

Swift提供了类似C语言的流程控制结构,包括可以多次执行任务的for和while循环,基于特定条件选择执行不同代码分支的if和switch语句,还有控制流程跳转到其他代码的break和continue语句. 除了C里面传统的 for 条件递增循环,Swift 还增加了 for-in 循环,用来更简单地遍历数组(array),字典(dictionary),范围(range),字符串(string)和其他序列类型. Swift 的 switch 语句比 C 语言中更加强大.在 C 语言中,如果某个