scala的模式匹配极其强大,其中有一种用法是用case语句匹配序列和元组。

  放码过来:

  

def parse(x: Any): String = x match {
case List(0, _, _) => "three element list; 0 is the first one"
case List(1, _*) => "unknow number of elements"
case list: List[_] => "got a list $list"
case list @ List(1, _*) => "got a list : $list"
case Array(_*) => "an array"
case Vevtor(_*) => "a Vector"
case (a,b,c) => s"three element tuple: $a, $b, $c"
case (a,b,c,_) => "four elements tuple;"
}

  其中,_表示一个元素,_*表示0个或多个元素

  List[_]这种写法可以匹配类型模式,而 @ List(1, _*)可以匹配一个变量绑定的模式

scala-匹配序列和元组的更多相关文章

  1. Scala的映射和元组操作

    映射和元组操作 构造Map // 构造一个不可变的MAP映射,类似与key -> value这样的组合叫做对偶 val score = Map("Jack" -> 12 ...

  2. 孤荷凌寒自学python第八天 初识Python的序列之元组

    孤荷凌寒自学python第八天 Python的序列之元组 (完整学习过程屏幕记录视频地址在文末,手写笔记在文末) (同步音频笔记:https://www.ximalaya.com/keji/19103 ...

  3. Scala学习——数组/映射/元组

    [<快学Scala>笔记] 数组 / 映射 / 元组 一.数组 1.定长数组 声明数组的两种形式: 声明指定长度的数组 val 数组名= new Array[类型](数组长度) 提供数组初 ...

  4. scala学习手记5 - 元组与多重赋值

    假定要在一个方法中返回多个值.比如需要返回一个人的名.姓和邮箱地址.在Java中最常用的方法是定义一个Person类,其中包括相对应的字段:还有些不常用的方法就是返回一个集合或数组,拿到结果后再进行循 ...

  5. Scala:映射和元组

    映射是键值对偶的集合.Scala有一个通用的叫法——元组:n个对象的聚集,并不一定要相同的类型. 构造映射 键A -> 值B scala> val scores = Map()//不可变映 ...

  6. scala 学习笔记(02) 元组Tuple、数组Array、Map、文件读写、网页抓取示例

    package yjmyzz import java.io.PrintWriter import java.util.Date import scala.io.Source object ScalaA ...

  7. python学习之路二(字符串,字典,序列和元组)

    # -*- coding: utf-8 -* ''' Created on 2013-7-26 @author: lixingle ''' #!/usr/bin/python import math# ...

  8. python数据类型:序列(字符串,元组,列表,字典)

    序列通常有2个特点: 1,可以根据索引取值 2,可以切片操作 字符串,元组,列表,字典,都可以看做是序列类型 我的操作环境:Ubuntu16.04+python2.7 一.字符串类型 >按索引获 ...

  9. Python序列结构--元组

    元组:轻量级列表 元组创建于元素访问 >>> x = (1, 2, 3)>>> type(x)<class 'tuple'>>>> x ...

随机推荐

  1. linux使用和基础操作

    1.linux系统初使用 linux有图形终端和字符终端,关于linux学习以字符终端为主,即命令行操作: [root@centos7 ~]#runlevel 查看当前工作模式N 3 //3为字符终端 ...

  2. 【5min+】后台任务的积木。.NetCore中的IHostedService

    系列介绍 [五分钟的dotnet]是一个利用您的碎片化时间来学习和丰富.net知识的博文系列.它所包含了.net体系中可能会涉及到的方方面面,比如C#的小细节,AspnetCore,微服务中的.net ...

  3. codewars--js--Roman Numerals Encode

    问题描述:(将阿拉伯数字转换成罗马数字) Create a function taking a positive integer as its parameter and returning a st ...

  4. Git分支管理介绍

    分支管理 软件的版本控制以及分支管理贯穿于整个软件产品的生命周期,日常的项目管理对于开发团队能否有节奏且顺利的交付软件也很重要.本分支管理和版本控制规范主要分为3个部分,即分支管理规范.版本号规范.需 ...

  5. 准备工作-Visual Studio 安装

    说明 网上很多安装教程,等到自己有时间的时候再写一篇自己安装的详细步骤 安装参考(网络) https://blog.csdn.net/qq_33485434/article/details/78454 ...

  6. spark 报错 InvalidClassException: no valid constructor

    2019-03-19 02:50:24 WARN TaskSetManager:66 - Lost task 1.0 in stage 0.0 (TID 1, 1.2.3.4, executor 1) ...

  7. 关于...corresponds to your MySQL server version for the right syntax to use near '?' at line 1的解决办法

    完整报错信息: java.sql.SQLSyntaxErrorException: You have an error in your SQL syntax; check the manual tha ...

  8. 【第一篇】为什么选择xLua

    为什么选择xLua 1. 易用性 Unity全平台补丁技术,可以运行时把C#实现(方法.操作符.属性.事件.构造函数)替换为lua的实现 自定义struct,枚举在lua和C#之间传递无C#的gc a ...

  9. MySQL 8 用户定义函数

    MySQL Server可以通过创建或者加载UDFs(User-Defined Functions)来扩展服务器功能. 通过CREATE FUNCTION语句加载 UDF,比如: CREATE FUN ...

  10. 利用 serviceStack 搭建web服务器

    1,资料地址 参考资料 https://docs.servicestack.net/ https://docs.servicestack.net/create-your-first-webservic ...