| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 移动开发 -> 学习笔记-Kotlin(2) -> 正文阅读 |
|
[移动开发]学习笔记-Kotlin(2) |
目录 1.函数内联? ? ? ?有关内联的引出,有些材料上说的是:在JVM上,你定义的lambda会以对象实例的形式存在,JVM会为所有同lambda打交道的变量分配内存,这就产生了内存开销,更糟的是,lambda的内存开销会带来严重的性能问题。幸运的是,kotlin有一种优化机制叫内联,有了内联,JVM就不需要使用lambda对象实例了,因而避免了变量内存分配。哪里需要使用lambda,编译器就会将函数体复制粘贴到哪里。
上边没有使用内联关键字的时候的字节码
? ? ? ?我们能看出来showOnBoard()函数在加了inline内联关键字后的字节码,把其函数体内的代码赋值粘贴到了main()中 2.函数引用? ? ? ?函数引用方式::函数名
3.函数类型作为返回类型? ? ? ?函数类型也是返回类型,可以定义一个返回函数的函数。有点绕嘴,哈哈哈。
? ? ? ?其中showOnBoard()函数的返回类型是(String)->String的一个函数(一个String的参数,返回值为String),使用meilidepaomo的时候传入一个String参数即可 4.闭包? ? ? ?闭包的概念:匿名函数能修改并引用定义在自己的作用域之外的变量,匿名函数引用着定义自身的函数里的变量,kotlin中的lambda就是闭包。换成通俗的讲法就是,function2在funtion1中,function2使用了funtion1中的变量,这个时候我们就称为闭包。 5.Null? ? ? ?kotlin区分可空类型和非可空类型。空值异常kotlin会在编译时就警告,而不是等到运行之后再崩溃。除非你接手处理。处理的方式有: (1)安全调用操作符? ? ? ?操作符:?
? ? ? ?这样我们的Int就是可空类型的了,编辑器再看到安全调用符,如果为空值,就会跳过函数调用,而不是让空值继续执行函数,如:
运行结果:LOVE222
运行结果:null (2)非空断言操作符? ? ? ?操作符:!!
? ? ? ?咱们不管是否为空就是要走plus,就可以这样使用,但这样容易空指针异常 (3)使用if判断空值? ? ? ?这个很好理解了,跟java差不多
(4)使用空合并操作符? ? ? ?操作符:?:
?运行结果:111111 6.异常? ? ? ?抛出异常和java相同
|
|
移动开发 最新文章 |
Vue3装载axios和element-ui |
android adb cmd |
【xcode】Xcode常用快捷键与技巧 |
Android开发中的线程池使用 |
Java 和 Android 的 Base64 |
Android 测试文字编码格式 |
微信小程序支付 |
安卓权限记录 |
知乎之自动养号 |
【Android Jetpack】DataStore |
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/24 23:43:20- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |