kotlin的扩展函数和扩展属性
来源:互联网 发布:阿里云域名代金券 编辑:程序博客网 时间:2024/05/16 17:41
扩展函数与扩展属性的神奇之处在于,可以在不修改原来类的条件下,使用函数和属性,表现得就像是属于这个类的一样。下面我们先看使用效果
1.扩展属性
第一个红矩形框中,你会发现TextView什么时候有leftMargin这个属性了,这样不用每次都要通过LayoutParams的leftMargin这么麻烦设置margin了。
其实很简单,kotlin的扩展属性就能解决这个问题
//扩展属性var TextView.leftMargin:Intget():Int { return (layoutParams as ViewGroup.MarginLayoutParams).leftMargin }set(value) { (layoutParams as ViewGroup.MarginLayoutParams).leftMargin=value }//扩展函数fun Context.toast(message:CharSequence)= Toast.makeText(this,message, Toast.LENGTH_LONG).show()
2. 扩展函数
第二个红矩形框中,这个Activity中所有的代码,在Activity没有定义toast()的方法,也没有导入工具库,竟然可以直接使用toast()方法,就像是Activity类中自带的方法一样使用,这是使用了什么魔法。
其实是使用了kotlin的扩展函数
fun Context.toast(message:CharSequence)= Toast.makeText(this,message, Toast.LENGTH_LONG).show()
使用建议:
可以新建一个公共文件,把需要扩展的属性和函数都放到这个文件中,作为一个工具类使用。
扩展属性,扩展函数的本质是以静态导入的方式来实现的。
阅读全文
5 0
- kotlin的扩展函数和扩展属性
- Kotlin的扩展属性和扩展方法
- Kotlin 扩展函数/属性
- Kotlin-12.扩展函数和属性(extensions)
- 解析Kotlin函数和属性扩展
- Kotlin(2): 优雅地扩展类的方法和属性
- Kotlin编程之扩展属性和扩展伴生对象
- Kotlin开发Android笔记6:Anko和扩展的函数
- android kotlin扩展函数
- Kotlin 扩展函数 与 JS 的 prototype
- kotlin随笔—扩展函数
- Kotlin 标准库扩展函数
- Kotlin 标准库扩展函数
- kotlin学习day11:扩展函数
- Kotlin-扩展
- kotlin-扩展
- Kotlin 扩展
- Kotlin 扩展
- 内部排序算法的 JAVA 实现
- vmware 虚拟机导入 ESX5.5
- 看雪CTF2017第一题简单分析
- Ajax原理介绍(结合php示例)
- 2017中兴算法挑战赛
- kotlin的扩展函数和扩展属性
- 策略路由
- SQL Server 存储过程
- Mysql外键约束的几种建立方式与区别
- 天猫浏览型应用的CDN静态化架构演变
- 两数组的交Ⅱ
- Android6.0权限组
- 深入理解MVC
- 《lua程序设计》读书笔记 第8章:编译、执行与错误