Scala高手实战****第18课:Scala偏函数、异常、Lazy值编码实战及Spark源码鉴赏

本篇文章主要讲述Scala函数式编程之偏函数,异常,及Lazy

第一部分:偏函数

偏函数:当函数有多个参数,而在使用该函数时不想提供所有参数(比如函数有3个参数),只提供0~2个参数,此时得到的函数便是偏函数。

 

  */
object C18 {

  def main(args: Array[String]): Unit = {

    val sample=1 to 10
    val isEven:PartialFunction[Integer,String]={
      case x if x%2==0=>x+" is even"
      case _=>"other"
    }
    val isOdd:PartialFunction[Integer,String]={
      case x if x%2==1=>x+" is odd"
    }

    isEven(4)

    lazy val x=3
    println(x)

  }

}

被lazy修饰的只有在被调用的时候才会实例化

object HelloExceptionAndLazyValue {
  def main(args: Array[String]): Unit = {
    try{
        1/0
    }catch {
      case ioException:IOException => println("IOException:" + ioException.toString())
      case illegalArgs:IllegalArgumentException => println("IllegalArgumentException:" + illegalArgs.toString())
      case arithmeticInstruction:ArithmeticInstruction =>("ArithmeticException"+arithmeticInstruction.toString())
    }  finally{

    }
//    val score = 100
    lazy val score = 100
    println("......"+score)
    println("......")
  }
}

  

  

 

posted @ 2018-11-22 11:37  Mars、少年  阅读(211)  评论(0编辑  收藏  举报