小记--------scala的函数定义及使用

1.定义函数:需要定义函数的函数名、参数、函数体    函数语法def 函数名(参数名:参数类型 , 参数名:参数类型) = {函数体} 小记--------scala的函数定义及使用小记--------scala的函数定义及使用   scala要求必须给出所有参数的类型,但是不一定给出函数返回值的类型,只要右侧的函数体中不包含递归的语句,scala就可以自己根据右侧的表达式推断出返回类型。     2.单行的函数: 小记--------scala的函数定义及使用小记--------scala的函数定义及使用 如果函数体中有多行代码,则可以使用代码块的方式包裹多行代码,代码块中最后一行的返回值就是整个函数的返回值,与java不同,不需要使用return返回值。 代码块 : 也就是通过{} 括起来。   例: 定义一个函数累加值 小记--------scala的函数定义及使用小记--------scala的函数定义及使用   3.递归函数:必须有函数的返回值类型     例:经典的斐波那契数列  时间复杂度不够好 小记--------scala的函数定义及使用小记--------scala的函数定义及使用     4.函数的默认参数     在scala中,有时我们调用某些函数时,不希望给出参数的具体值,而希望使用参数自身默认的值,此时就定义在定义函数时使用默认参数 小记--------scala的函数定义及使用小记--------scala的函数定义及使用默认参数就是在设置参数的时候直接 = 一个默认值。即可   5.带名参数     在调用函数时,也可以不按照函数定义的参数顺序来传递参数,而是使用带名参数的方式来传递 小记--------scala的函数定义及使用小记--------scala的函数定义及使用     6.函数入门之变长参数     在scala中,有时我们需要将函数定义为参数个数可变的形式,则此时可以使用变长参数定义函数。     也就是 在参数类型后面添加符号 * 即可。 小记--------scala的函数定义及使用小记--------scala的函数定义及使用   7.通过序列调用可变参数 小记--------scala的函数定义及使用小记--------scala的函数定义及使用     8.函数之入门之过程、lazy值和异常   8.1过程     在scala中,定义函数时,如果函数体直接包裹在了花括号里面,而没有使用=连接,则函数的返回值类型就是Unit, 这样的函数就被称之为过程,过程通常用于不需要返回值的函数。说白了就是正常的函数如果没有返回值那么就称这个函数为过程。      过程还有一种写法,就是将函数的返回值类型定义为Unit   不是过程的函数 小记--------scala的函数定义及使用小记--------scala的函数定义及使用   是过程的函数 小记--------scala的函数定义及使用小记--------scala的函数定义及使用   8.2 lazy值     在scala中,提供了lazy值的特性, 也就是说,如果将一个变量声明为lazy,则只有在第一次使用该变量时,变量对应的表达式才会发生计算,这种特性对特别耗时的计算操作特别有用, 打开文件进行IO,进行网络IO等       案例: 小记--------scala的函数定义及使用小记--------scala的函数定义及使用 在进行IO的时候需要先导入IO的包     import scala.io.Source._ 然后定义lazy常量读文件, 当时lazy的时候, 如果文件不存在,也不会报错, 因为只有在使用变量时才会报错。     8.3异常         在scala中,异常处理和捕获机制与java是非常相似的。 小记--------scala的函数定义及使用小记--------scala的函数定义及使用 跟java大致一样,只是在catch处,  java的语法是 catch(IllegalArgumenExecption e){print("sorry")}   而scala语法是 catch{case e; IllegalArgumenExecption => print("sorry")}   finally还是不论如何都会执行此处。  
上一篇:spring成神之路第十二篇:lazy-init:bean延迟初始化


下一篇:WPscan扫描工具安装使用