scala (8) 模糊匹配
- object MatchDemo {
- /**
- * 定义偏函数用PartialFunction来表示
- * PartialFunction[T1,T2]要求传入一个参数T1,T2代表返回的类型。
- * 偏函数体中的case只会执行一个,如果匹配到了就不会继续往下匹配
- */
- val func: PartialFunction[String, Int] = {
- case "a" => 1
- case "b" => 2
- case _ => -1
- }
- /**
- * 匹配字符串
- */
- def m1(str: String) = str match {
- case "a" => 1
- case "b" => 2
- case _ => -1
- }
- /**
- * 匹配类型
- */
- def m2(x: Any) = x match {
- // 匹配字符串
- case x: String => println(x)
- // 带if守卫条件的匹配
- case x: Int if x > 5 => println(x)
- case _ => println("unknonw")
- }
- /**
- * 匹配数组
- */
- def m3(arr: Array[Int]) = arr match {
- case Array(1, x, y) => println("匹配以1开头,有三个元素的数组")
- case Array(0) => println("匹配只有0这个元素的数组")
- case Array(0, _*) => println("匹配以0开头,任意多个元素的数组")
- case _ => ("unknown")
- }
- /**
- * 匹配序列 List
- */
- def m4(list: List[Int]) = list match {
- case 5 :: Nil => println("匹配只有5这个元素的序列")
- case x :: y :: Nil => println("匹配只有两个元素的序列")
- case x :: tail => println("匹配任意多个元素的序列")
- case _ => println("unknown")
- }
- /**
- * 匹配元组
- */
- def m5(tuple: Any) = tuple match {
- case (x, z, 7) => println("匹配有三个元素并且以7结尾的元组")
- case (2, x, y) => println("匹配以2开头有三个元素的元组")
- case _ => println("unknown")
- }
- def main(args: Array[String]): Unit = {
- println(func("c"))
- println(m1("a"))
- m2(6)
- m3(Array(0, 1, 2, 3, 4, 5, 6))
- m4(List(5, 6, 7))
- }
- }
scala (8) 模糊匹配的更多相关文章
- 1035-Spell checker(模糊匹配)
一,题意: 给出一组字典的单词,以'#'结束,之后给出一组要执行模糊匹配的单词序列,以'#'结束 1,若某个单词能在字典中找到,则输出corret 2,若某个单词能通过 变换 或 删除 或 添加一个字 ...
- sql模糊匹配中%、_的处理
防sql注入之模糊匹配中%._处理: StringBuilder sbSql = new StringBuilder(); sbSql.Append(@"SELECT * from tabl ...
- 记一个同时支持模糊匹配和静态推导的Atom语法补全插件的开发过程: 序
简介 过去的一周,都睡的很晚,终于做出了Atom上的APICloud语法提示与补全插件:apicloud_autocomplete.个中滋味,感觉还是有必要记录下来的.代码基于 GPL-3.0 开源, ...
- 茗洋Easy UI 1.3.2 部分问题解决系列专题[Combo模糊匹配中文问题 修复]
本次给大家带来的EasyUI的我研究拓展的新特性 我使用的是 EasyUI 1.3.2版本的,项目是ASP.NET MVC3,但是本篇讲解用不上ASP.NET MVC,仅仅修改官方Demo你就知道怎 ...
- Mysql 模糊匹配和转义字符
首先创建一个测试表: insert into test(tt) values('\\\\172.18.28.153'); 现在我想使用模糊匹配,查出以 “\\172” 开头的字符串. 需要使用like ...
- grep是模糊匹配
1. 我:我用的ps -nat|grep -i "80"|wc -l命令 我:解释详细点,,龙哥,对于我这种菜鸟:也是模糊匹配 :你用 grep "80" 会匹 ...
- ExtJs combobox支持模糊匹配
其实很简单,我们只需要在创建下拉框时,给下拉框添加一个监听事件,代码如下: //以下监听事件用于对下拉项进行模糊匹配 ,listeners:{ ...
- Jquery 模糊匹配ID
[属性名称] 匹配包含给定属性的元素[att=value] 匹配包含给定属性的元素 (大小写区分)[att*=value] 模糊匹配[att!=value] 不能是这个值[att$=value] 结尾 ...
- jQuery选择器模糊匹配
<html> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8&quo ...
随机推荐
- Java学习---多线程的学习
基础知识 每个正在系统上运行的程序都是一个进程(process).每个进程包含一到多个线程(thread).进程也可能是整个程序或者是部分程序的动态执行. 线程是一组指令的集合,或者是程序的特殊段,它 ...
- 通过Windows Server 2008 R2建立iSCSI存储
名词解释:iSCSI技术是一种由IBM公司研究开发的,是一个供硬件设备使用的可以在IP协议的上层运行的SCSI指令集,这种指令集合可以实现在IP网络上运行 SCSI协议,使其能够在诸如高速千兆以太网上 ...
- Asp.Net MVC Identity 2.2.1 使用技巧(五)
创建用户管理相关视图 1.添加视图 打开UsersAdminController.cs 将鼠标移动到public ActionResult Index()上 右键>添加视图 系统会弹出 ...
- 利用python查看电脑系统信息
#查看python默认编码格式 >>> import sys >>> print sys.getdefaultencoding() #python 2.x 默认编码 ...
- Linux命令--目录处理
ls命令 Linux ls命令用于显示指定工作目录下之内容(列出目前工作目录所含之文件及子目录). 语法 ls [-alrtAFR] [name...] 参数 : -a 显示所有文件及目录 (ls内定 ...
- c++计算器后续(5)
自娱自乐: 大概是重新开始玩qt,然后MFC和第四步附加的作业大概不会去玩了.以上. QT相关: 阶段一: 原来作业里举了qt和mfc这两个做界面的东西,网上都说qt容易上手,学了mfc再来看qt简直 ...
- Linux服务器磁盘空间占满问题
下面我们一起来看一篇关于Linux服务器磁盘占满问题解决(/dev/sda3 满了),希望碰到此类问题的人能带来帮助. 今天下班某电商技术部leader发现个问题,说他们服务器硬盘满了.把日志文件 ...
- JavaScript设计模式之设计原则
何为设计 即按照哪一种思路或者标准来实现功能,功能相同,可以有不同的设计方案来实现 伴随着需求的增加,设计的作用就会体现出来,一般的APP每天都在变化,更新很快,需求不断在增加,如果设计的不好,后面很 ...
- FireFox新标签页打开搜索和书签
FireFox更新,发现界面完全不适应,虽然他是越做越丑,但是也没办法,一直用FireFox,许多书签,保存的密码现在都记不住了,只能靠保存的自动填充.... 进入正题,FireFox更新了之后,搜索 ...
- 【bootstrap】.container与.container_fluid
.container与.container_fluid是bootstrap中的两种不同类型的外层容器,区别是: .container 类用于固定宽度并支持响应式布局的容器.不用你自己设宽度,通过< ...