仓颉面向函数编程-lambda表达式

一、lambda表达式的定义

 1.lambda表达式的语法定义如下:

        {a1:T1,...,an:Tn => 表达式体}

        其中,a1...an是参数变量,T1...Tn是泛型,各个参数之间用逗号相隔。

注意:lambda表达式中=>不可以省略,=>之前可以不用有参数,并且lambda表达式中的参数名的作用域与函数相同。

main(): Int64 {
    let f1 = {a:Int64,b:Int64 => a+b}
    return 0
}

2.lambda表达式作为参数使用

func function(a1:(Int64) -> Int64):Int64
{
    a1(10)
}
main(): Int64 {
    
    return 0
}

返回值类型根据使用处所在的函数调用的形参类型推断。

3.lambda表达式作为返回值使用

func function1():(Int64)->Int64
{
    {a:Int64 => a}
}
main(): Int64 {
    
    return 0
}

当lambda表达式作为返回值时,函数主体内要返回一个lambda表达式。

二、lambda表达式的调用

main(): Int64 {
    let f1 = {a:Int64,b:Int64 => a+b}
    var sum = f1(2,3)
    println("相加的和为:${sum}")
    return 0
}

当lambda表达式赋值给变量时,调用需要在变量名后用括号把对应数量及类型的参数填上即可。

结果为:

        总结:lambda表达式通过其简洁的表达,在仓颉面向函数式编程中被广泛使用,使得代码变得更加的简洁与直观。但是lambda表达式内只能写一条表达式,不能写多条表达式。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值