Scala 语言之模式匹配(6)

简介:

==> Scala 有一个强大的模式匹配机制, 类似于 switch 语句,可以实现对类型的判断以及检查,还提供了样本类,使其可以对样本类的对象进行模式匹配

==> 模式匹配示例

1
2
3
4
5
6
7
8
9
10
var  v 1  =  0
var  ch 1  =  "-"
ch 1  match {
   case  "+"  = > v 1  =  1
   case  "-"  = > v 1  =  - 1
   case  _  = > v 1  =  0
 
}
 
println(v 1 )


==> Scala 守卫

1
2
3
4
5
6
7
8
9
10
// Scala 守卫 匹配某种类型的所有值
var  v 2  =  '6'
var  ch 2 : Int  =  - 1
v 2  match {
   case  '+'  = > println( "这是一个+" )
   case  '-'  = > println( "这是一个 -" )
   case  _  if  Character.isDigit(v 2 = > ch 2  =  Character.digit(ch 2 10 )
   case  _  = > println( "其它类型" )
}
println( "ch2:"  + ch 2 )


==> 模式匹配中的变量

1
2
3
4
5
6
7
// 模式中匹配变量
var  v 3  =  "Hello"
v 3 ( 1 match {
   case  '+'  = > println( "这是一个 + " )
   case  '-'  = > println( "这是一个 -" )
   case  ch  = > println( "这是"  + ch)
}


==> 模式匹配中的数组和列表

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
// 匹配数组和列表
var  myarray  =  Array( 1 , 2 , 3 )
myarray  match  {
   case  Array( 0 = > println( "0" )
   case  Array(x, y)  = > println( "这是列表,包含两个元素,和是: "  + (x+y))
   case  Array(x, y, z)  = > println( "包含三个元素,乘积是: "  + (x*y*z))
   case  Array(x,  _ *)  = > println( "这是一个数组" )
}
 
var  mylist  =  List( 1 , 2 , 3 , 4 )
 
mylist  match {
   case  List( 0 = > println( "0" )
   case  List(x, y)  = > println( "这是两个元素,乘积是:"  + (x+y))
   case  List(x, y, z)  = > println( "这是一个三个元素的数组,乘积是: "  + (x*y*z))
   case  List( _ *)  = > println( "这是一个多元素数组" )
}


==> 样本类(CaseClass) 在类前面加 case 关键字, 其最大的好处就是 支持模式识别

1
2
3
4
5
6
7
8
9
10
11
12
13
14
// 通过使用样本类判断对象是否属于类
var  aCar : DemoCaseClass  =  new  Bicycle( "car" )
aCar  match {
   case  Car(name)  = > println( "I am a car" )
   case  Bicycle(name) = > println( "i am a zixingche|" )
   case  _  = > println( "other" )
 
}
 
 
 
class  DemoCaseClass
case  class  Car(name : String)  extends  DemoCaseClass
case  class  Bicycle(name : String)  extends  DemoCaseClass


本文转自   tianshuai369   51CTO博客,原文链接:http://blog.51cto.com/songqinglong/2072119
相关文章
|
10月前
|
Scala
166 Scala 模式匹配和样例类
166 Scala 模式匹配和样例类
71 0
|
1月前
|
监控 安全 Java
Scala 语言助力局域网监控电脑屏幕软件的创新
在数字化办公时代,局域网监控软件对企业和信息安全至关重要。Scala语言融合了面向对象与函数式编程,其简洁的语法和强大的类型系统为这类软件的开发提供了新机遇。利用Scala的函数式编程特性,开发者能编写更简洁、易维护的代码;结合Java的丰富类库,实现高效网络通信;Scala的并发模型还能优化多线程处理,提升监控效率。这些特点使Scala成为开发智能且高效的局域网监控软件的理想选择。
17 0
|
2月前
|
Scala 开发者
Scala中的模式匹配与高阶函数:探索强大的编程范式
【7月更文挑战第11天】Scala中的模式匹配和高阶函数是两种极其强大的特性,它们不仅提升了代码的表达力和可读性,还使得开发者能够编写出更加灵活和可重用的解决方案。通过
|
2月前
|
分布式计算 大数据 Java
大数据开发语言Scala入门
大数据开发语言Scala入门
|
2月前
|
IDE 大数据 Java
「AIGC」大数据开发语言Scala入门
Scala,融合OOP和FP的多范式语言,在JVM上运行,常用于大数据处理,尤其与Apache Spark配合。要开始学习,安装Scala,选择IDE如IntelliJ。基础包括变量、数据类型、控制结构、函数。Scala支持类、对象、不可变数据结构、模式匹配和强大的并发工具。利用官方文档、教程、社区资源进行学习,并通过实践提升技能。
45 0
|
3月前
|
Scala
scala-模式匹配(字符串、数组、元组、集合、类、偏函数)
scala-模式匹配(字符串、数组、元组、集合、类、偏函数)
20 0
|
4月前
|
Scala
Scala中的异常处理和模式匹配
Scala中的异常处理和模式匹配
39 1
|
4月前
|
Scala
Scala中的模式匹配:强大的匹配和转换工具
Scala中的模式匹配:强大的匹配和转换工具
35 1
|
4月前
|
分布式计算 Java 大数据
Scala:样例类、模式匹配、Option、偏函数、泛型(三)
Scala:样例类、模式匹配、Option、偏函数、泛型(三)
66 0
|
11月前
|
安全 Java 编译器
Scala语言入门:初学者的基础语法指南
作为一种在Java虚拟机(JVM)上运行的静态类型编程语言,Scala结合了面向对象和函数式编程的特性,使它既有强大的表达力又具备优秀的型态控制
73 0