美文网首页
scala的函数使用分析

scala的函数使用分析

作者: high_m | 来源:发表于2017-10-29 22:00 被阅读0次

scala的函数定义及使用知识点挺多,有类型型变(不变、型变、逆变)知识,有 call-by-namecall-by-value使用区别,还有众多特别的语法,下面的示例都将会或多或少的涉及。


Timer方法

Timer方法用于计算一个操作的结果及耗时时间,操作可以看做是一个可执行代码块,返回是一个Tuple,如何定义呢?这就要涉及到call-by-name,因为作为输入参数的操作不应该在传入前就已经执行,否则如何计算执行时间呢?代码如下:

  def timer[A](blockCode: =>A) ={
    val startTime = System.nanoTime()
    val result = blockCode
    val stopTime = System.nanoTime()

    val delta = stopTime - startTime
    (result, delta/1000000d)
  }

timer方法接受一个泛型类型参数A,并且是call-by-name调用,因为A前面有个=>符号,该方式称为"惰性"。如果没有该符号,就是call-by-value调用,返回结果是一个二元组(结果,时间)

相关文章

  • scala的函数使用分析

    scala的函数定义及使用知识点挺多,有类型型变(不变、型变、逆变)知识,有 call-by-name和call-...

  • Scala笔记

    Scala基础 学习twitter的scala教程的笔记 函数 函数定义,scala语法中可以使用多种方式定义函数...

  • Spark MLlib

    Spark MLlib Spark简介 基于内存设计,比一般的数据分析框架有着更高的处理性能,使用Scala函数式...

  • scala 排序函数使用和代码分析

    引用 转载 请注明出处 scala & java 关系不清,爱者,为止疯狂。怨者,无力吐槽。但在一个方面是无可争议...

  • 第三讲函数详解

    Scala被认为是函数式编程语言,故Scala函数是Scala编程的核心。所以掌握scala的函数至关重要。 本章...

  • Scala函数式编程(三) scala集合和函数

    前情提要: scala函数式编程(二) scala基础语法介绍 scala函数式编程(二) scala基础语法介绍...

  • stream in java8

    如果使用过scala,使用scala函数编程思想处理数据,那酸爽谁用谁知道。使用java老觉得不得劲,但java8...

  • 函数式编程理解

    函数式编程理解 1)Scala中函数的地位:一等公民2)Scala中的匿名函数(函数字面量)3)Scala中的高阶...

  • Scala编程基础12:Scala函数3

    1.Scala高阶函数 高阶函数(Higher-Order Function)就是操作其他函数的函数。Scala允...

  • Scala函数式编程(四)函数式的数据结构 下

    前情提要 Scala函数式编程指南(一) 函数式思想介绍 scala函数式编程(二) scala基础语法介绍 Sc...

网友评论

      本文标题:scala的函数使用分析

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