Kotlin标准库提供了5个scope functions(作用域函数): let, run, with, apply, also.作用域函数的目的是为了在对象的上下文中执行一段代码. 当你在一个对象上调用作用域方法, 提供一个lambda表达式, 会形成一个临时的scope, 在这个scope里, 访问该对象可以不用它的名字.作用域方法没有引入什么新的技术能力, 它们只是简化了代码.作用域函数的
转载 2021-06-02 15:42:55
143阅读
Kotlin标准库提供了5个scope functions(作用域函数): let, run, with, apply, also.作用域函数的目的是为了在对象的上下文中执行一段代码. 当你在一个对象上调用作用域方法, 提供一个lambda表达式, 会形成一个临时的scope, 在这个scope里, 访问该对象可以不用它的名字.作用域方法没有引入什么新的技术能力, 它们只是简化了代码.作用域函数的
转载 2021-06-02 15:43:00
181阅读
static修饰符。与Java不同的是在Kotlin的类不允许你声明静态成员或方法。相反,你必须向类添加Companion对象来包装这些静态引用: 差异看起来似乎很小,但是它有一些明显的不同。  一:companion伴生对象作用首先,companion伴生对象是个实际对象的单例实例。你实际上可以在你的类声明一个单例,并且可以像companion伴生对象那样去使用它。这就
转载 2024-03-28 09:36:14
76阅读
1. infix 的作用infix 标示的函数可以使用中缀表示法, 中缀表示法就是在写法上可以忽略 . 与 ()并且必须满足三个条件必须是成员函数或者扩展函数必须只有一个参数其参数不能有可变参,不能默认值使用注意事项:先级低于 算数操作符 ,类型转换 ,rangeTo 操作符先级高于 &&, || 等infix 可以使语法写起来更接近英语,人类语言。 下面举个例子可以更形象的理解S
类和对象类的属性属性定义getter 和 setter实例主构造器实例次构造函数实例抽象类嵌套类内部类匿名内部类类的修饰符实例Kotlin 继承构造函数子类有主构造函数子类没有主构造函数实例重写Kotlin 接口实现接口接口中的属性函数重写Kotlin 扩展扩展函数扩展函数是静态解析的扩展一个空对象扩展属性伴生对象的扩展扩展的作用域扩展声明为成员 类和对象类的属性属性定义类的属性可以用关键字 v
转载 2024-05-23 09:21:36
274阅读
在java,匿名对象访问封闭作用域内的变量,需要用final 声明变量在java8,如果只是使用封闭作用域内的变量,该变量并不需要使用final,但是一旦修改值,就需要使用final 来声明变量.
原创 2021-08-13 09:49:14
113阅读
Android每日一问,小聚成河,大聚成江。 更多请访问GitHub Android每日面试题总结。
原创 2022-02-09 11:05:11
374阅读
GlobeScope:全局范围,不会自动结束执行。 MainScope:主线程的作用域,全局范围 lifecycleScope:生命周期范围,用于activity等有生命周期的组件,在Desroyed的时候会自动结束。 viewModeScope:ViewModel范围,用于ViewModel,在ViewModel被回收时会自动结束
原创 2023-04-15 08:51:43
177阅读
文章目录1 可空性1.1 可空类型1.2 类型的含义1.3 安全调用运算符: “?.”1.4 Elvis运算符: “?:”1.5 安全转换: “as?”1.6 非空断言:“!!”1.7 “let”函数1.8 延迟初始化的属性1.9 可空类型的拓展1.10 类型参数的可空性1.11 可空性和java2 基本数据类型和其他基本类型2.1 基本数据类型:Int,Boolean及其他2.2 可空的基本数
Kotlin ---- 扩展属性、扩展函数在原有类的基础上,增加功能,及不用改源码,也不用写子类!简单的示例扩展属性val Float.dpTOpx get()= TypedValue.applyDimension( TypedValue.COMPLEX_UNIT_DIP,this, Resources.getSystem().displayMetrics)
转载 2023-08-17 14:23:25
145阅读
官方文档: http://kotlinlang.org/docs/reference/inline-functions.html1.内联函数的概念和作用使用高阶函数(higher-order functions)会导致一些性能的损耗: 每个函数都是对象,且会捕获闭包closure(即变量会在函数体内被访问), 函数对象/类会增加内存分配,而且虚拟调用栈也会增加额外内存开销! 可用
目前uwp版本oneNote对文本格式的支持不够全面 不过可以利用间接来实现目的:使用格式刷 就是借助行距较小的文本,通过格式刷(可
原创 2022-06-14 18:14:34
101阅读
一. 内联函数使用高阶函数会带来一些运行时的效率损失:每个函数都是一个对象,并且会捕获一个闭包。即那些在函数体内会访问到的变量。内存分配和虚拟调用(对于函数和类)会引入运行时间开销,但是通过内联化表达式可以消除这类的开销为了解决这个问题,可以使用内联函数,用inline修饰的函数就是内联函数,inline修饰符影响函数本身和传给它的lambda表达式,所有这些都将内联到调用处,即编译器会把调用这个
转载 2023-11-10 17:26:02
193阅读
Kotlin学习之伴生对象Kotlin没有静态成员,主要原因在于它允许包级属性和函数的存在;Kotlin为静态成员提供了多种替代的方案: - 使用包级属性和函数:主要用于全局常量和工具函数; - 使用伴生对象:主要用于与类有紧密联系的变量和函数; - 使用@JvmStatic注解:与伴生对象搭配使用,将变量和函数声明为真正的JVM静态成员。一、伴生对象Kotlin的对象指的是使用obje
Kotlin ,所有东西都是对象,在这个意义上讲我们可以在任何变量上调用成员函数与属性。 Kotlin 中使用的基本类型:数字、字符、布尔值、数组与字符串。数字整数类型 大小(比特数) Byte 8 Short 16 Int 32 Long 64所有以未超出 Int 最大值的整型值初始化的变量都会推断为 Int 类型。 如果初始值超
转载 2024-03-29 18:50:59
18阅读
Kotlin作用域函数是一组高阶函数,用于在特定作用域内执行代码块,并处理上下文对象的生命周期。它们
枚举类成员 输出: 动态调用成员函数 动态调用成员属性
原创 2021-08-13 09:40:38
904阅读
使用interface关键字声明,一个类可以多实现,实现方法与类继承相同 接口中的属性和方法都是open的
转载 2021-08-13 09:48:37
82阅读
前言我们都知道Java中一直在说万物皆对象,面向对象编程,但基本数据类型却不是对象,而Kotlin的所有类型都是对象,包括基本数值类型和方法,而数值对象的运行效率不如基本数据类型(具体请自行搜索);猜测那么,Kotlin中使用数值进行运算是否会比Java中使用数值运算效率更慢呢?理论在Java平台上,Kotlin的数字类型被物理存储为JVM原始类型,除非需要一个可空的数字引用(例如Int?)或涉
如题,List集合添加一个List集合怎么操作 如上,现在有了List<A>,A类中有个字段List<B>, 新创建一个List<B>,想把LIst<A>的每一个A.List<B>放到这个新创建的LIst<B> 解决方法如下:
转载 2018-03-31 21:49:00
128阅读
2评论
  • 1
  • 2
  • 3
  • 4
  • 5