val r=v1 match {
case
v1
if
1
until
5
contains v1=>
"1-5"
case
v1
if
5
until
10
contains v1=>
"5-10"
case
_=>
"not found"
println(r)
变形语法:
val v1=3
val r=v1 match {
case v1 if (v1>0 && v1<=5) => "1-5"
case v1 if (v1>5 && v1<=10)=> "5-10"
case _=> "not found"
println(r)
例子四多值匹配:
def glob(x:Any):Any= x match {
case 1 | "1" | "one" => "one "
case "two"=> 2
case s:String => "String"
case y:Int=>"Int 类型 "
case _ => "其他"
println(glob(4))
例子五正则多值匹配:
val Pattern1="(quest_.*)".r
val Pattern2="(kp_max_.*)".r
val Pattern3="(ukq_.*)".r
* 根据提供的key返回value数据,屏蔽底层差异
* @param key
def get(key:String):Any= key match {
case Pattern1(_) | Pattern2(_) => r.get(key)
case Pattern3(_) => r.lrange(key,0,29).get
case _ => ""
println(get("kp_max_1000168"))
println(get("quest_494bdc1bd1c34cfa8064d8d38382659f"))
println(get("ukq_1001_10034"))
println(get("xfd"))
有什么问题可以扫码关注微信公众号:我是攻城师(woshigcs),在后台留言咨询。 技术债不能欠,健康债更不能欠, 求道之路,与君同行。
scala中的case语法与java中的switch语法类似,但比switch更强大:例子一正则匹配:val Pattern="(s.*)".r val v1="spark"; val r=v1 match { case Pattern(v1)=> "begin s*" case "1"=> "1" case "2"=> "2"
如果在
scala
代码还在使用ids!=null,可能会被有的人嘲笑,都什么年代了,竟然还有这样的写法,NullPointerException见少了吧?
不过,据统计:
Spark 源代码使用了 821 次 Option 关键字,但它也直接在像if (ids != null)。
Spark 采用混合方式,大部分情况下使用 Option,但个别时候出于性能(这里主要是为了给使用这返回提示信息)原因才使用了null。
一个很好的习惯是当有方法返回值可能为null的时候,使用Option来代替。
什么是Op
Match
regular expression: 使用正则表达式
1、如果只勾选
Match
case
,搜索关键字必须输入"Digit_Count"才能找到 "Digit_Count"。
2、如果只勾选
Match
w...
Scala
中
提供的
match
case
匹配模式类似于Java
中
的switch
case
:
1.
match
case
能够处理所有的类型
2.
match
case
不需要break,java
中
的swith
case
如果没有break称为贯穿现象
3.
match
case
能够生成值
下面介绍几种常用的
match
case
匹配模式:
1.基础
语法
:
def abc(x:Int)= {
x
match
{ //x为方法传入的参数,即变量
case
1 => x + 10
Scala
中
提供了比java,c更加强大的switch语句——
match
,而且不用担心因为忘记写break语句而发生
case
穿透
1.更好的switch
与if,类似
match
也是表达式,如下一个用于匹配字符的函数def char
Match
(c: Char) = c
match
{
case
'+' => 1
case
'-' => -1
了解java小伙伴的同学应该都知道在java
中
有switch...
case
语句,根据不同的值(switch(i))得到不同的结果(
case
是常量表达式),每个
case
字句后面可以有break结尾,最后一句default可有可无;
对于
Scala
中
我们提供了更加强大的模式匹配
match
case
,
Scala
的
match
case
与Java的switch
case
最大的不同点在于,Jav...
Scala
的
match
表达式类似于其他语言
中
的switch语句,它可以提供给你在多个备选项
中
做选择。基本上
match
表达式可以让你使用任意的模式(pattern)做选择。
1. 按值匹配
def value
Match
(fruit: String) {
fruit
match
{
case
"apple" => print("apple")
case
"b...
简介cala 提供了强大的模式匹配机制,应用也非常广泛。
一个模式匹配包含了一系列备选项,每个都开始于关键字
case
。每个备选项都包含了一个模式及一到多个表达式。箭头符号 => 隔开了模式和表达式。以下是一个简单的整型值模式匹配实例:def
match
Test(x: Int): String = x
match
{
case
1 => "one"
case
2 => "two"