• Scala 匿名函数


    1)说明

    没有名字的函数就是匿名函数。
    (x:Int)=>{函数体}
    x:表示输入参数类型;Int:表示输入参数类型;函数体:表示具体代码逻辑

    2)案例实操

    需求 1:传递的函数有一个参数
    传递匿名函数至简原则:
    (1)参数的类型可以省略,会根据形参进行自动的推导
    (2)类型省略之后,发现只有一个参数,则圆括号可以省略;其他情况:没有参数和参
    数超过 1 的永远不能省略圆括号。
    (3)匿名函数如果只有一行,则大括号也可以省略
    (4)如果参数只出现一次,则参数省略且后面参数可以用_代替

     1     //匿名函数 :没有名字的函数,通过lambda表达式实现 (参数)=>{函数体}
     2 
     3     //f9((s:String)=>{println(s)})
     4     //(1)参数的类型可以省略,会根据形参进行自动的推导
     5 
     6     //f9((s)=>{println(s)})
     7     //(2)类型省略之后,发现只有一个参数,则圆括号可以省略;其他情况:没有参数和参数超过1的永远不能省略圆括号。
     8 
     9     //f9(s =>{println(s)})
    10     //(3)匿名函数如果只有一行,则大括号也可以省略
    11 
    12     //f9(s =>println(s))
    13     //(4)如果参数只出现一次,则参数省略且后面参数可以用_代替
    14 
    15     //f9(println(_))
    16     // (5) 如果可以推断出,println是一个函数体,而不是调用语句,那么(_)可以省
    17 
    18     // f9(println)
    19     //反推导 f9((s:String)=>println(s))
     1 def f11(fun:(Int,Int)=>Int):Int={
     2 
     3       fun(1,2)
     4 
     5     }
     6     //println(f11((x:Int,y:Int)=>{x + y}))
     7 
     8     //println(f11((x,y)=>x + y))
     9 
    10     println(f11(_ + _))
  • 相关阅读:
    bzoj 3993: [SDOI2015]星际战争
    bzoj 4066: 简单题
    bzoj 3611: [Heoi2014]大工程
    bzoj 3530: [Sdoi2014]数数
    bzoj 3529: [Sdoi2014]数表
    bzoj 3504: [Cqoi2014]危桥
    bzoj 3489: A simple rmq problem
    bzoj 3211: 花神游历各国
    bzoj 3196: Tyvj 1730 二逼平衡树
    bzoj 3172: [Tjoi2013]单词
  • 原文地址:https://www.cnblogs.com/rainbow-1/p/15765539.html
Copyright © 2020-2023  润新知