Scala的方法和函数
admin
2023-07-26 09:00:08
0

1. 方法

Scala的方法和函数
方法的返回值类型可以不写,编译器可以自动推断,但是对于递归函数,必须指定返回值类型。
例:

def sum(x:Int,y:Int):Int ={
        x+y
    }

2. 函数

Scala的方法和函数

例:
val add=(x:Int,y:Int) => x+y

3.函数与方法的区别

  (1)函数可以作为参数传递给方法,也就是说函数可以作为方法的参数,在函数式编程中,函数式“头等公民”,它可以像任何其他的数据类型一样传递和操作
例:

object Test01 {
    def main(args: Array[String]): Unit = {
        //调用方法
        val result=sum(add,1,2)
        println(result)
    }
    //定义一个以函数为参数的方法,这里定义的函数参数,需要指明参数类型和返回值类型
    def sum(f:(Int,Int)=>Int,x:Int,y:Int):Int ={
        f(x,y)
    }
    //定义一个函数
    val add=(x:Int,y:Int) => x+y
}

  (2)函数可以作为方法的参数也可以作为函数的参数
例:

object Test01 {
    def main(args: Array[String]): Unit = {
        //调用函数
        val result=func1(add,1,2)
        println(result)
    }
    //定义一个参数为函数的函数
    val func1=(f:(Int,Int)=>Int,x:Int,y:Int)=> f(x,y)
    //定义一个函数
    val add=(x:Int,y:Int) => x+y
}

  (3)方法也可以作为方法的参数传入,但是相对于函数比较特殊

object Test01 {
    def main(args: Array[String]): Unit = {
        //调用方法,这里需要将方法转换为函数,
        //转化方式,就是将方法后面加一个下划线
        val result=m2(m1 _,1,2)
        println(result)
    }
    //定义一个方法作为参数
    def m1(x:Int,y:Int):Int ={
        x+y
    }
    //定义一个方法,参数为一个函数
    def m2(f:(Int,Int)=>Int,x:Int,y:Int):Int ={
        f(x,y)
    }
}

相关内容

热门资讯

韩国赌上国运,股市彻底疯狂 6月29日,韩国总统李在明在青瓦台主持国家级半导体与AI产业战略会议,三星电子会长李在镕、SK集团会...
在世界屋脊之上——写在乌玛塘5... 当念青唐古拉山的风吹绿了羌塘草原的牧草,当拉萨河谷的油菜花开成一片金色的海洋,六月的高原正焕发出一年...
免打孔空调,挂脖冷风机,中国制... 热浪之下,中国空调在欧洲各大商场几乎被一抢而空。中国制造的手持风扇、制冰机等降温神器,在跨境电商平台...
蓝思科技入股元拾科技 【大河财立方消息】天眼查App显示,近日,元拾科技(浙江)有限公司发生工商变更,新增蓝思科技(300...
胡锡进:日本要“重新武装”,休... 中国商务部周一宣布将日本防卫研究所等20家实体列入出口管制管控名单,另有20家实体被列入关注名单,这...
炙烤欧洲经济的三重热浪 新华社北京6月29日电 热浪28日从西欧地区向中东欧地区扩散,德国、捷克、波兰等国出现创纪录高温。法...
《恋与深空》回应争议:731为... 6月29日,《恋与深空》长文回应近期争议:近日,我们关注到网络上流传着许多《恋与深空》游戏及宣传内容...
中方将日本20家实体列入出口管... 澎湃新闻记者 谢瑞强 实习生 王子健6月29日,商务部网站发布公告,将20家日本实体列入出口管制管控...
《财富》中国科技50强揭晓,清... 作为全球最具影响力的商业媒体之一,《财富》发布的企业榜单历来被视为产业趋势的风向标。 6月25日,“...
原创 科... 千万不要擅自回复任何来自地外的信息! 这不是科幻段子,是权威机构的正式结论。 2026 年 6 月...