Lambda 编程(Kotlin)一

这篇具有很好参考价值的文章主要介绍了Lambda 编程(Kotlin)一。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

学习记录,以下为个人理解

知识点:

  • Lambda的定义:允许你把代码块当作参数传递给函数
  • Lambda的语法约定:如果lambda 表达式是函数调用的最后一个实参,它可以放到括号的外边
  • 当lambda表达式时函数唯一的实参时,还可以去掉调用代码中的空括号对

Lambda 简介

简单来说,就是直接传递代码块作为函数的参数

举例(kotlin):

button.setOnClickListener{ 要执行的代码块 }

上述内容就是直接将代码块作为函数的参数传递给了setOnClickListener。  是不是一头雾水。那么下面说下具体过程。

一般Java这么写:

button.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                 要执行的代码块
            }
        });

在 Kotlin 中,您可以使用 lambda 表达式作为需要函数式接口的方法的参数,例如OnClickListener. Kotlin 的 lambda 表达式会自动被视为函数式接口的实例,这是使 Kotlin 语法简洁且富有表现力的强大功能之一。

那么上述代码可以这样写:

  button.setOnClickListener({要执行的代码块})

这样是不是看起来很奇怪,一般IDE 会提示(非错误,黄色的波浪线):Lambda argument should be moved out of parentheses (Lambda 参数应移出括号)

Kotlin 有这样的语法约定,如果lambda 表达式是函数调用的最后一个实参,它可以放到括号的外边。那就变成了这样子

  button.setOnClickListener(){要执行的代码块}

当lambda表达式时函数唯一的实参时,还可以去掉调用代码中的空括号对,那就变成了这样子:

  button.setOnClickListener{要执行的代码块}

Lambda 表达式语法:

{x:Int,y:Int -> x+y}

上面示例中 -> 左边的 叫参数  , ->右边的叫表达式

如下例,将Lambda 存储到变量中,可以将这个函数单过普通函数对待:

val operateOnNumbers = {a: Int, b: Int -> a + b}
fun main() {
    val result = operateOnNumbers(10, 5)
    println("Result of addition: $result")

    val subtractResult = operateOnNumbers(10, 5)
    println("Result of subtraction: $subtractResult")
}

未完待续...文章来源地址https://www.toymoban.com/news/detail-676181.html

到了这里,关于Lambda 编程(Kotlin)一的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【第二阶段】kotlin的lambda学习

    匿名函数==lambdm表达式 1.两数相加 执行结果 2.判断日期 执行结果 结论:匿名函数属于lambda

    2024年02月13日
    浏览(29)
  • Android kotlin高阶函数与Java lambda表达式介绍与实战

            目前在Java JDK版本的不断升高,新的表达式已开始出现,但是在Android混淆开发中,kotlin的语言与Java的语言是紧密贴合的。所以Java lambda表达式在kotlin中以新的身份出现:高阶函数与lambda表达式特别类似。接下来我讲会先讲Java的lambda,再介绍kotlin的高阶函数。 2.1

    2024年02月15日
    浏览(32)
  • kotlin学习(二)泛型、函数、lambda、扩展、运算符重载

    Kotlin 中的类可以有类型参数,与 Java 类似: 创建这样类的实例只需要提供类型参数即可: 如果类型参数可以推断出来,例如从构造函数的参数或者从其他途径,就可以省略类型参数: String作为Object的子类,就可以直接将子类对象赋值给父类,这个操作即达到了 型变 。 但是

    2024年02月09日
    浏览(29)
  • kotlin基础--快速上手kotlin语言开发

    1.1 变量 var表示可变变量,val表示不可变变量,注意并不是常量。变量名写在前面,类型写在后面,编译器如果能推断出你的类型,那么类型是不用声明的 。 编译器自动推断类型。 空安全类型编译器报错 如果还是想给赋初始化值的话 注意:String和String?是两个完全不同的类

    2024年02月15日
    浏览(36)
  • Kotlin学习记录

    除了java的 public , protected , default , private 外,又有独特的 internal , open 修饰符。 直译为内部的,访问范围是当前模块可见。使用示例: 默认情况下 class 和成员都是具备 final 修饰符的,即无法被继承和复写。 如果可以被继承或复写,需要添加 open 修饰。使用示例: 更多

    2024年02月09日
    浏览(27)
  • 在 Android Studio Java 项目里混合 Kotlin 编程

    首先,先搞明白一个概念,这里的 Java 混合 Kotlin 是指文件层级的混合,即 Java 代码还是写在 .java 文件中,Kotlin 代码还是写在 .kt 文件中,只不过是可以在 Java 的代码中可以调用自己写好的 Kotlin 类,从 Java 的角度看,它并不知道它调用的这个类是 Kotlin 写的,这个类和平时遇

    2024年02月08日
    浏览(39)
  • 学习Kotlin~函数式编程

    高阶函数:以函数为参数或返回函数 函数式编程范式主要依赖于高阶函数返回的数据,这些高阶函数专用于处理各种集合 这些高阶函数可方便的联合多个同类函数构建链式操作以创建复杂的计算行为 函数类别 一个函数式应用通常由三大类构成:变换transform、过滤filter、合并

    2024年02月12日
    浏览(32)
  • Kotlin 轻量级Android开发

    Kotlin 是一门运行在 JVM 之上的语言。 它由 Jetbrains 创建,而 Jetbrains 则是诸多强大的工具(如知名的 Java IDE IntelliJ IDEA )背后的公司。 Kotlin 是一门非常简单的语言,其主要目标之一就是提供强大语言的同时又保持简单且精简的语法。 其主要特性如下所示: 轻量级:这一点对

    2024年02月07日
    浏览(43)
  • Android---Kotlin 学习009

    在 java 里如果一个类没有被 final 修饰,那么它都是可以被继承的。而在 kotlin 中,类默认都是封闭的,要让某个类开放继承,必须使用 open 修饰它,否则会编译报错。此外在子类中,如果要复写父类的某个方法,需要用到 Override (在 kt 中就不是注解了)

    2024年02月01日
    浏览(29)
  • 【错误记录】Android Studio 中 Kotlin 版本报错 ( Module was compiled with an incompatible version of Kotlin. T )

    在 Android Studio 中 , 编译应用 , 报如下错误 : 这个报错问题 , 出现了十几次 ; 详细报错信息如下 : 下面的报错信息 , 仅做参考 , 就不要点开了 ; 核心报错信息如下 : Module was compiled with an incompatible version of Kotlin. The binary version of its metadata is 1.6.0, expected version is 1.1.13. 大概含义就

    2024年02月05日
    浏览(35)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包