Scala 匿名函数 作为参数 传入函数 的简化过程

引言

会涉及 _ (下划线)的其中一个用法

Scala 的宗旨:至简。所以把 匿名函数 作为函数的参数,可以进行很大程度的简化

有一个参数的简化

定义一个函数

def fun(f: Int => Unit): Unit = {
        f(12)
    }

执行函数

传入 匿名函数

fun( (a: Int) => {println(a)} )

匿名函数的参数类型,可以被自动推断出来,可以简化

fun((a) => {println(a)})

参数只有一个,代码在一行,代码块括号可以简化

fun(a => println(a))

下面是 println() 函数的特殊简化,println() 本身也是一个函数
参数后面只用一次,可以用 _ (下划线)代替

fun(println(_))
fun(println)
---------------
12

有多个参数的简化

定义一个函数(两个参数)

def fn(f: (Int,Int) => Int): Unit = {
        println(f(12,23))
    }

执行函数

传入 匿名函数

fn((a: Int,b: Int) => {a + b})

匿名函数的参数类型,可以被自动推断出来,可以简化

fn((a,b) => {a+b})

代码在一行,代码块括号可以进一步简化

fn((a,b) => a + b)

如果参数只用了一次可以使用 _

fn(_+_)
-------
35
发表评论 / Comment

用心评论~