zoukankan      html  css  js  c++  java
  • 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是非常相似的。

      

      

  • 相关阅读:
    数据结构:图 (总结)
    排序算法总结(此篇文章是14年写作,代码难看,请看我新发表的排序总结)
    no identifier specified for entity错误
    哈夫曼编码算法思想总结
    线索二叉树
    ORACLE 错误 ora-01830 解决方法
    (转)web会话管理方式
    (转)C3P0配置
    分页技术()
    简易 DBUtil 封装
  • 原文地址:https://www.cnblogs.com/haisongvip/p/9526628.html
Copyright © 2011-2022 走看看