scala中的下划线代替实参变量 ==> 分析一个乍看不知道在嘎哈的函数

本文深入探讨了Scala语言中函数编程的基本概念与实践技巧,包括函数定义、调用及参数处理方式,展示了如何利用匿名函数简化代码并提高灵活性。通过具体示例,读者将了解如何在函数中使用常量代替变量,进一步掌握函数式编程的魅力。

//定义一个函数

scala> def multiple(func: Int => Int, a :Int) = {func(a)}
multiple: (func: Int => Int, a: Int)Int

//调用

scala> multiple((a:Int) => a+1,5)
res225: Int = 6

//自动类型推断,可以省略参数类型

scala> multiple((a) => a+1,5)
res229: Int = 6

//只有一个参数,可以省略圆括号

scala> multiple(a => a+1,5)
res230: Int = 6

//在执行中只被调用一次,参数可以用 _ (下划线)代替

scala> multiple(_+1,5)
res231: Int = 6

一个下划线可以代表这么大的信息量。。。也是挺有意思的。

================================================================

//把变量a换成一个常数 3,那么函数只要有一个函数参数就可以了

scala> def multiple(func: Int => Int) = {func(3)}
multiple: (func: Int => Int)Int

//调用, _ 就代表 3 

scala> multiple(_*2)
res232: Int = 6

scala> multiple(_+100)
res234: Int = 103

scala> multiple(1000+_)
res235: Int = 1003

乍一看 multiple(func: Int => Int) = {func(3)} 这个函数有点懵,不知道在嘎哈。 分析一下,明白了。

然后发现其实这个函数很好理解。就是要对 3 做点啥。函数体中就是直接在匿名函数中传入了一个固定的常量3作为参数而不再接收变量。

转载于:https://www.cnblogs.com/rabbit624/p/10533874.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值