点击领取优惠~
176 字
1 分钟
扩展方法以及其原理
实际开发中我们的点击事件、资源获取等都可以使用。好处就不多说了,比如加入防抖,或者获取资源时的捕获异常,都可以减少日后添加需求时的开发量
private var lastClickTime = 0Lfun View.setSingleClickListener(delay: Long = 500, onClick: () -> Unit) { setOnClickListener { val currentTime = System.currentTimeMillis() if (currentTime - lastClickTime > delay) { onClick() lastClickTime = currentTime } }}原理 Kotlin 中的扩展方法其实是一种静态的语法糖,本质上是一个静态函数,不是实例函数。编译器会将扩展方法转化为静态函数的调用。 比如
fun String.lastChar(): Char = this.get(this.length - 1)---val s = "hello"val c = s.lastChar() // 转化为 StringKt.lastChar(s) 扩展方法以及其原理