scala中的表达式

scala中的表达式是有值的, 所以可以把表达式当做参数来传递, 那么接受表达式的形参定义一般是: block: =>Unit   , 没有形参,返回类型Unit

spark中的这个代码很经典,可以传递一个代码块给函数:

  def tryOrIOException(block: =>Unit){
    try{
      block
    } catch {
      case e:IOException => throw e
      case NonFatal(t) => throw new IOException(t)

    }
  }

这个函数使用如下:

  private def readObject(in: java.io.ObjectInputStream): Unit = Utils.tryOrIOException {
    in.defaultReadObject()
    init()
  }

传递一个代码块给上面定义的函数,所以代码可以看做是个函数的调用

时间: 2024-12-21 21:21:37

scala中的表达式的相关文章

第85讲:Scala中For表达式的强大表现力实战

今日[DT大数据梦工厂视频]<第85讲:Scala中For表达式的强大表现力实战>51CTO视频:http://edu.51cto.com/lesson/id-71503.html(DT大数据梦工厂scala的所有视频.PPT和代码在百度云盘的链接:http://url.cn/fSFPjS)85讲 scala for 表达式的强大表现力高阶函数的行为 指定了对数据 处理 的细节 .case class Person(name:String,isMale:Boolean,children:Per

Scala中For表达式的生成器、定义和过滤器

学习了Scala中For表达式的生成器.定义和过滤器 ,应用 for是循环列表,根据用户需要进行过滤. Def main(args:Array[String]){ Val  lauren=Person(“Lauren”,false) Val  rocky=Person(“Rocky”,true) Val  vivian=Person(“Vivian”,false, laure,rocky) Val  person=List(Lauren,Rocky,Vivian) Val forResult=f

Scala深入浅出实战经典《第85讲:Scala中For表达式的强大表现力实战》笔记

简直了....晚上回来突然看到了进巨的原稿,忍不住撸了幅三爷,然后什么都没做就23点了... 第85讲:Scala中For表达式的强大表现力实战 Goal: 高阶函数(flatmap,map)与for循环的比较与联系(初) Gains: for循环的背后其实还是调用map,但是如果从语句简洁性.表现力两个方面考虑,则更倾向与for循环编程 More: 把实例代码跑一遍,体验一下~ ----------------------------------------------------------

Scala深入浅出实战经典《第86讲:Scala中For表达式的生成器、定义和过滤器》笔记

第86讲:Scala中For表达式的生成器.定义和过滤器 Goal: For的生成器.定义.过滤器 Gains: 生成器:从集合中取出每个元素,for语句中可以有多个生成器 过滤器: 循环满足的条件 More: 把实例代码跑一遍~ ------------------------------------------------------------------------------------ 信息来源于 DT大数据梦工厂微信公众账号:DT_Spark DT大数据梦工厂scala的所有视频.

Scala中For表达式的强大表现力

学习了Scala中For表达式的强大表现力,scala 应用for循环比应用高阶函数表现力强很多,高阶函数的行为指定了对数据处理的细节.实际上 for是用map的方式,更加简洁. 例子如下 case  class  Person(name:String,isMale:Boolean,children:Person*)/ildren可变参数 object  For_Expressive{def main(args:Array[String]){val lauren=Person("Lauren&q

第86讲:Scala中For表达式的生成器、定义和过滤器

今天我们来看一下For表达式中的生成器,定义和过滤等内容. 让我们来看下代码 def main(args:Array[String]){     val lauren = Persons("Lauren",false)    val rocky = Persons("Rocky",true)    val vivian = Persons("Vivian",false,lauren,rocky)    val persons = List(lau

Scala 深入浅出实战经典 第85讲:Scala中For表达式的强大表现力实战

高阶函数 filter 源码分析 package com.dt.scala.forexpression case class Person(name: String, isMale: Boolean, children: Person*) object For_Expressive { def main(args: Array[String]) { val lauren = Person("Lauren", false) val rocky = Person("Rocky&q

Scala 深入浅出实战经典 第86讲:Scala中For表达式的生成器、定义和过滤器

package com.dt.scala.forexpression object ForInAction { def main(args: Array[String]) { val lauren = Person("Lauren", false) val rocky = Person("Rocky", true) val vivian = Person("Vivian", false, lauren, rocky) val persons =

第87讲:scala中使用For表达式做查询

今天我们来学习下如何用for表达式在scala中做查询. 先来看看示例代码 case class Book(title:String,authors:List[String]) object text_87 {   def main(args:Array[String]){ val books:List[Book] = List( Book("scala programming",List("zhangbanner","dongxicheng",