美文网首页
#转#Scala编程进阶:提取器实战详解

#转#Scala编程进阶:提取器实战详解

作者: lyoungzzz | 来源:发表于2019-08-18 20:53 被阅读0次

    提取器

    apply方法

    伴生类和伴生对象的概念,companion class和companion object
    伴生对象里面,可以定义一个apply方法
    直接调用类(参数),方式,就相当于在调用apply方法
    此时在apply方法中,通常来说(也不一定),会创建一个伴生类的对象,返回回去

    这种方式,有一个好处,创建对象呢,非常的方便
    不要每次都是new 类(参数),类(参数)

    提取器

    unapply方法

    和apply方法,顾名思义,那就是反过来
    apply方法,可以理解为,接收一堆参数,然后返回一个对象
    unapply方法,可以理解为,接收一个字符串,解析成一个对象的各个字段

    提取器就是一个包含了unapply方法的对象,跟apply方法正好相反
    apply方法,是接收一堆参数,然后构造出来一个对象
    unapply方法,是接收一个字符串,然后解析出对象的属性值

    class Person(val name: String, val age: Int)
    
    object Person {
    
      def apply(name: String, age: Int) = new Person(name, age)
      
      def unapply(str: String) = {
        val splitIndex = str.indexOf(" ")
        if (splitIndex == -1) None
    
        else Some((str.substring(0, splitIndex), str.substring(splitIndex + 1)))
      }
      
    }
    
    val Person(name, age) = "leo 25"
    
    name
    age
    

    相关文章

      网友评论

          本文标题:#转#Scala编程进阶:提取器实战详解

          本文链接:https://www.haomeiwen.com/subject/bdydsctx.html