• 3、scala函数入门


    1、定义函数

    2、在代码块中定义函数体

    3、递归函数与返回类型

    4、默认参数

    5、带名参数

    6、变长参数

    7、使用序列调用变长参数 

    8、过程

    9、lazy值             

    10、异常

    1、  定义函数

      在scala中定义函数时,需要定义函数的函数名、参数、函数体。

      Scala要求给出所有参数的类型,但不一定给出返回值类型,只要右侧的函数体中不包含递归的语句,scala就可以根据右侧的表达式推断出返回类型。

      

    2、在代码块中定义函数体

      单行的函数

      

      如果函数体中存在多行代码,则可以使用代码块的方式包裹多行代码,代码块最后一行的返回值就是整个函数的返回值。(与java使用return不同)

      

    3、递归函数与返回类型

      如果函数体内递归调用函数自身,必须手动给出函数的返回类型。如经典的斐波那契数列

      

    4、默认参数

      在scala中有时我们调用某些函数时,不希望给出参数的具体值,而希望使用参数自身默认的值,此时就定义在定义函数时使用默认参数。

      如果给出的参数不够,则会从左往右依次应用参数。

      

    5、带名参数

      在调用函数时,可以不按照参数顺序传递函数,而是使用带名参数的方式传递。

      还可以混合使用过未命名参数和带名参数,但是未命名参数必须排在带名参数前面。

      

    6、变长参数

      Scala中,我们需要将函数定义为参数个数可变的形式,此时可以使用变长参数定义函数。

      

    7、使用序列调用变长参数

      如果想将一个已有的序列直接调用变长参数函数,是不对的。

      此时需要使用scala特殊的语法将参数定义为序列,让scala解释器识别。如图

       

    8、过程

      在scala中定义函数时,如果函数体直接包裹在花括号里面,而没有使用=连接,则函数的返回值类型即使Unit。这样的函数被称之为过程。过程通常用于不需要返回值的函数。

      过程还有一种写法,就是将函数的返回值类型定义为Unit。

      

    9、lazy值

      Scala中,提供lazy值的特性,如果将一个变量声明为lazy,则只有在第一次使用该变量时,变量对应的表达式才会发生计算。这种特性对特别耗时的计算操作特别有用,比如打开文件进行IO,进行网络IO等。

      

    10、异常

      在scala中,异常处理和捕获机制与java是非常相似的。

      

      

  • 相关阅读:
    asp.net mvc 两级分类联动方法示例
    动手实践虚拟网络
    KVM 网络虚拟化基础
    LVM 类型的 Storage Pool
    KVM 存储虚拟化
    CPU 和内存虚拟化原理
    远程管理 KVM 虚机
    启动第一个 KVM 虚机
    准备 KVM 实验环境
    虚拟化
  • 原文地址:https://www.cnblogs.com/haisongvip/p/9526628.html
Copyright © 2020-2023  润新知