Scala高级篇

 1、模式匹配

  • 概念介绍
    • 类比于 java 中的 switch...case,但比其要强大、灵活很多。
    • 旨在解决符合一定模式(值也是模式的一种)情况下的匹配与处理问题。
  • 使用说明
    • 一个模式匹配包含了一系列备选项,每个都开始于关键字 case。每个备选项都包含了一个模式及一到多个表达式。箭头符号=>隔开了模式和表达式。
    • 选择器 match {备选项},match 表达式通过以代码编写的先后次序尝试每个模式来完成计算,只要发现有一个匹配的 case,剩下的 case 不会继续匹配。
  • 应用示例
    • 经典示例(同类型)

def main(args: Array[String]) { println(selfMatch("javase"))

}

def selfMatch(x: String): String = x match { case "javase" => "Java 开发标准版"

case "javaee" => "Java 开发企业版" case _        => "其它 Java 版本 "

}

  • def main(args: Array[String]) {

    println(selfMatch("one")) println(selfMatch(2)) println(selfMatch("III")) println(selfMatch("five"))

    }

    def selfMatch(x: Any): Any = x match {

    case

    case

    case case

    "one"

    2

    =>

    "III"

    _

    => 1

    "two"

    => "希腊数字 3"

    => "其它不认识了"

    }


    不同类型匹配示例

  • 复杂表达式匹配示例

def main(args: Array[String]) { println(selfMatch(1)) println(selfMatch(10)) println(selfMatch(22)) println(selfMatch(78))

}

def selfMatch(x: Int): String = x match { case _ if x<12 => "幼年"

case _ if x<18 => "未成年"

case _ if x>=18 && x<60 => "成年" case _ => "已步入老年了!"

}

 

  • 类型模式匹配示例

object TestPatternMatch {

def main(args: Array[String]) { println(selfMatch(1)) println(selfMatch("10")) println(selfMatch(new TestPatternMatch())) println(selfMatch(new Object()))

}

def selfMatch(x: Any): Any = x match { case _:Int => "传入的是整型"

case _:String => "传入的是字符串"

case _:TestPatternMatch => "传入的数据类型是TestPatternMatch"

case _     => "不知道什么类型"

}

}

//定义一个空类,便于上边的类型模式匹配class TestPatternMatch{

}

 

2、正则表达式

  • 概念说明
    • Java 当中的正则表达式的作用完全相同

正则表达式,又称规则表达式。(英语:Regular Expression,在代码中常简写为 regex、regexp 或RE)

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值