scala学习:提取器

算法探幽人
• 阅读 1546

scala学习:提取器

unapply 与模式匹配

object EMail {
      def apply(user: String, domain: String): String = user + "@" + domain

      def unapply(string: String): Option[(String, String)] = {
        val strings: Array[String] = string.split("@")
        if (strings.length == 2) Some(strings(0), strings(1)) else None
      }
    }

    def una(x: String): Unit = x match {
      case EMail(user, domain) => println(s"user: $user, domain: $domain")
      case _ => println("is not a email")
    }

    una("ljk@qq.com")
    una("taobao.com")

正则表达式

test("regex test "){

    val decimal = """(-)?(\d+)(\.\d*)?""".r// 可选-,加上一个数字或者多个数字,加上可选的 可能小数点和0个或者多个数字
    val decimal(a,b,c) = "-1.23"

    println(s"a: $a, b: $b, c: $c")
  }
点赞
收藏
评论区
推荐文章
Stella981 Stella981
3年前
Scala学习(一):Scala简介与Hello World!
一.Scala是什么Scala是一门多范式的编程语言,类似于Java。设计初衷是实现可伸缩的语言、并集成面向对象编程和函数式编程的各种特性。二.环境准备(以Windows下安装Scala为例)1.官网:http://www.scalalang.org/ 下载安装包:!image(https://static.osc
Stella981 Stella981
3年前
Scala中的match(模式匹配)
/\\模式匹配\/caseclassClass1(param1:String,param2:String)caseclassClass2(param1:String)objectCase{defmain(args:Array\String\){//通过模式匹配进行条件判断valtest1:
Stella981 Stella981
3年前
Scala快速入门系列
写在前面的话因为Spark是由Scala开发的,所以在开发Spark应用程序之前要对Scala语言学习。虽然Spark也支持Java、Python语言,但是作为一名Java程序猿,还是决定要学习Scala哈。Scala是运行在JVM上一门语言。开发效率非常高、语法丰富简洁,三两行Scala代码能搞定Java要写的一大坨代码。
Stella981 Stella981
3年前
Scala 谜题
在Scala中,List\String\和List\Int\之间并没有继承关系,但是下面的代码竟然可以通过编译并且顺利运行:objectTestextendsApp{valstrList:List\String\List("a","b","c")valstrToIntList:List\Int
Stella981 Stella981
3年前
Scala学习笔记03:操作符
Scala学习笔记03:操作符一、scala中操作符与方法的等价性scala中操作符即方法、方法即操作符。scala中操作符其实是普通方法调用的另一种表现形式,运算符的使用其实就是隐含地调用对应的方法。1、操作符即方法!(https://oscimg.oschina.net/oscnet/up6852d9b70e
Stella981 Stella981
3年前
Scala系统学习(三):Scala基础语法
如果您熟悉Java语言语法和编程,那么学习Scala将会很容易。Scala和Java之间最大的句法差异在于行结束字符的分号(;)是可选的。当编写Scala程序时,它可以被定义为通过调用彼此的方法进行通信的对象的集合。现在我们简单地看一下类,对象,方法和实例变量的含义。对象 对象有状态和行为。一个对象是类的一个实例。例如狗有状态
可莉 可莉
3年前
13、scala模式匹配
1、模式匹配的基础语法2、对类型进行模式匹配3、对Array和List的元素进行模式匹配4、caseclass与模式匹配5、Option与模式匹配1、模式匹配的基础语法  Scala提供了matchcase语法,即模式匹配。替代java的switchcase。 
Stella981 Stella981
3年前
Spark框架:Win10系统下搭建Scala开发环境
一、Scala环境基础Scala对Java相关的类,接口进行了包装,所以依赖Jvm环境。Jdk1.8scala依赖scala2.11安装版本idea2017.3开发工具二、配置Scala解压版1)注意路径无空格和中文!(http
Stella981 Stella981
3年前
Scala 提取器(Extractor)
提取器是从传递给它的对象中提取出构造该对象的参数。Scala标准库包含了一些预定义的提取器,我们会大致的了解一下它们。Scala提取器是一个带有unapply方法的对象。unapply方法算是apply方法的反向操作:unapply接受一个对象,然后从对象中提取值,提取的值通常是用来构造该对象的值。以下实例演示了邮件地址的提取器对象: