Scala深入学习之函数学习 快来打我* 2022-11-30 04:26 198阅读 0赞 ### 目录 ### * * 一、函数的定义 * 二、匿名函数 * 三、递归函数 * 四、无参函数 * 五、方法和函数的区别联系 ## 一、函数的定义 ## 代码示例: package functionDemo /** * @author : 蔡政洁 * @email :caizhengjie888@icloud.com * @date : 2020/8/23 * @time : 2:14 下午 */ object FunctionDemo1 { // 实现加法的功能 val f1 = ((a:Int,b:Int) =>{ a+b}) val f2 = (a:Int,b:Int) =>{ a+b} val f3 = (_:Int)+(_:Int) val f4:(Int,Int)=>Int = (_+_) val f5:((Int,Int)=>Int)=((x,y)=>x+y) val f6 = new Function2[Int,Int,Int] { override def apply(v1: Int, v2: Int): Int = v1+v2 } def main(args: Array[String]): Unit = { // 函数调用 val res = f1(10,20) println(res) val res2 = f6(100,100) println(res2) } } 运行结果: 30 200 ## 二、匿名函数 ## 代码示例: package functionDemo /** * @author : 蔡政洁 * @email :caizhengjie888@icloud.com * @date : 2020/8/23 * @time : 6:08 下午 */ object FunctionDemo2 { // 定义一个匿名函数 (x:Int)=>x+10 val f1 = (x:Int)=>x+10 val f2 = (x:Int,y:Int)=>x*y def main(args: Array[String]): Unit = { // 调用匿名函数 println(f1(30)) println(f2(10,10)) } } 运行结果: 40 100 ## 三、递归函数 ## 代码示例: package functionDemo /** * @author : 蔡政洁 * @email :caizhengjie888@icloud.com * @date : 2020/8/23 * @time : 7:06 下午 */ object FunctionDemo3 { // 定义一个递归函数 // 实现一个数学上阶乘的功能:3!=1*2*2 4!=4*3! // 递归函数的返回值类型要指定 val factorial:Int=>Int=(n)=>{ if (n<1) 1 else n * factorial(n-1) } def main(args: Array[String]): Unit = { println(factorial(10)) } } 运行结果: 3628800 ## 四、无参函数 ## 代码示例: package functionDemo /** * @author : 蔡政洁 * @email :caizhengjie888@icloud.com * @date : 2020/8/23 * @time : 7:13 下午 */ object FunctionDemo4 { // 定义一个无参函数,参数括号不能省略 val getAnswer = () => "success" def main(args: Array[String]): Unit = { // 无参函数的调用 println(getAnswer()) println(getAnswer) } } 运行结果: success functionDemo.FunctionDemo4$$$Lambda$1/1349393271@3f0ee7cb ## 五、方法和函数的区别联系 ## 1.方法和函数的定义语法不同 * def 方法名(参数列表):返回类型=方法体 * val 变量 = (函数参数列表)=> 函数体 2.方法一般定义在某个类,特质,或者object中 3.方法可以共享使用所在类的属性 **将方法转换为函数** 将方法作为参数传给另一个方法或者函数的时候,方法被转化为函数 使用神奇的下划线\_ 代码示例: package functionDemo /** * @author : 蔡政洁 * @email :caizhengjie888@icloud.com * @date : 2020/8/23 * @time : 7:45 下午 */ object FunctionDemo5 { def method1(x:Int,y:Int) = x+y def main(args: Array[String]): Unit = { val res1 = method1(10,10) // 方法转化为函数 _ val res2 = method1 _ println(res1) println(res2(20,10)) // 方法作为参数传给另一个方法或者函数,系统会自动把方法转化为函数 } } 运行结果: 20 30 -------------------- 以上内容仅供参考学习,如有侵权请联系我删除! 如果这篇文章对您有帮助,左下角的大拇指就是对博主最大的鼓励。 您的鼓励就是博主最大的动力!
相关 Scala深入学习之函数式编程 目录 一、函数式编程 二、高阶函数 三、闭包和柯里化 一、函数式编程 示例代码: package matchDe 清疚/ 2022年12月22日 08:50/ 0 赞/ 209 阅读
相关 Scala深入学习之面向对象学习 目录 一、封装 二、类的构造 三、内部类 四、Object对象 五、伴生对象 六、类的继 梦里梦外;/ 2022年12月08日 05:18/ 0 赞/ 208 阅读
相关 Scala深入学习之数组学习 目录 一、定长数组Array 二、可变数组ArrayBuffer 三、变长数组通用操作 四、Map学习 迷南。/ 2022年12月04日 08:41/ 0 赞/ 160 阅读
相关 Scala深入学习之集合体系学习(一) 1.集合是一种用来存储各种对象和数据的容器。 2.Scala集合分为可变和不可变的集合,不可变集合可以安全的并发访问。 可变集合可以在适当的地方被更新或扩展。这意味 今天药忘吃喽~/ 2022年12月01日 11:52/ 0 赞/ 200 阅读
相关 Scala深入学习之函数学习 目录 一、函数的定义 二、匿名函数 三、递归函数 四、无参函数 五、方法和函数的区别联系 一、函数 快来打我*/ 2022年11月30日 04:26/ 0 赞/ 199 阅读
相关 Scala深入学习之方法的学习 目录 一、方法定义 二、无参方法 三、默认参数方法 四、可变参数方法 五、方法定义的注意事项 一、 电玩女神/ 2022年11月29日 05:49/ 0 赞/ 423 阅读
相关 Scala深入学习之操作符学习 一、算术操作符 ![在这里插入图片描述][watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG 小灰灰/ 2022年11月28日 10:56/ 0 赞/ 224 阅读
相关 Scala深入学习之数据类型学习 目录 一、Scala类型层级关系 二、整数类型 三、浮点类型 四、字符类型 五、字符串类型 女爷i/ 2022年11月27日 09:00/ 0 赞/ 169 阅读
相关 Scala深入学习之变量学习 目录 一、变量定义 二、var和val的区别 三、变量总结 一、变量定义 基本语法: var|val 变量名 [ 你的名字/ 2022年11月27日 08:48/ 0 赞/ 148 阅读
还没有评论,来说两句吧...