scala 随笔(7)unapply 解析
来源:互联网 发布:python 绝顶黑客 编辑:程序博客网 时间:2024/06/04 18:05
apply he unapply 都是放在object 半生类里面。
apply 可以用来new对象,
unapply能够解析对象。一般与match 联合使用
class UnapplyTest (var x :String ,var y :Int) {}object UnapplyTest { def apply(x:String): UnapplyTest ={ val array = x.split(":") require(array.length==2) new UnapplyTest(array(0).toString,array(1).toInt) } def unapply(unapplyTest: String): Option[(String,Int)]={ val array = unapplyTest.split(":") Some(array(0).toString,array(1).toInt) } def main(args: Array[String]): Unit = { val unapplyTest = UnapplyTest("localhost:8080") println(unapplyTest.x+":" + unapplyTest.y) var test = "localhost:8080" test match { case UnapplyTest("localhost",8080) => print("I am here") } }}
test 是String类型,本身是无法匹配UnapplyTest 类型的。
应为在unapply里面定义里,
在这里会先将String,调用unapply 然后与输出的option 比较。
输出:
localhost:8080
I am here
Process finished with exit code 0
阅读全文
0 0
- scala 随笔(7)unapply 解析
- scala unapply的测试
- scala 随笔(5) sealed 解析
- scala 随笔(8)list 源码解析
- scala中的apply和unapply
- scala 随笔(6)apply 解析和构造类
- Desugar Scala(15) -- unapply和unapplySeq方法
- scala学习笔记:match与unapply()
- scala中的apply方法与unapply方法
- scala 的apply,update,unapply方法
- scala 知识总结 apply与unapply
- SCALA随笔(一)
- Scala基础随笔(一)
- scala 随笔(2) scala构造函数 this
- Scala入门随笔一
- Scala入门随笔二
- Scala入门随笔三
- scala 随笔(1) 懒加载lazy 详细说明
- SASS的简单用法
- nyoj 题目14:会场安排问题 贪心算法
- Luogu P3396普通平衡树
- 二十五天
- web前端学习日记7
- scala 随笔(7)unapply 解析
- 我喜欢培根:
- hdu 2586
- Java:按值传递还是按引用传递
- Hbuilder less自动编译
- C++(类)
- 强类型语言与弱类型语言
- 食物链(POJ-1182)
- LeetCode 409 Longest Palindrome