kotlin 之美(平滑过渡)

作者: zidea | 来源:发表于2019-04-30 16:23 被阅读50次
kotlin.jpeg

kotlin 和 java 的关系感觉就像 typescript 和 javascript 的关系。Kotlin 做法并不是革命式推翻项目中原有的老大地位,而是可以和老大融洽共处,让老大发现他好从而自身改变。
kotlin 扩展函数非常简单,只要把扩展类放置在函数名前面就搞定。

    var title:String = "angular"
    fun String.titlelastChar():Char = this.get(this.length - 1)

    println(title.titlelastChar())

这里String函数接受者,this代表接受类型实例对象,看起来有点像 go 语言 structinterface的实现。

扩展函数并不允许打破类封闭性,扩展函数中是无法访问到类私有或者受保护的成员。
扩展函数在 java 中也是可调用的使用的。

    public static void main(String[] args) {
        char c = StringUtilKt.titlelastChar("angluar");
        System.out.println(c);
    }
open class View{
    open fun click() = println("clicked on view")
}

open class Button:View(){
    override fun click() = println("clicked on button")
}
    val view:View = View()
    val btn:View = Button()
    view.click()
    btn.click()

在 OOP 的语言中子类重现父类方法是一件极为平常事。即便向上转型也会调用子类的方法。

clicked on view
clicked on button

但是扩展函数并不是类的一部分,我们做一个实验让基类ViewButton都扩展了showOff方法。

    fun View.showOff() = println("call showOff of view")
    fun Button.showOff() = println("call showOff of button")
 
    val btn:View = Button()
    btn.showOff()
call showOff of view

发现 button 向上转型调用时 View 的 showOff 方法而非自己本身的 showOff 方法。

相关文章

  • kotlin 之美(平滑过渡)

    kotlin 和 java 的关系感觉就像 typescript 和 javascript 的关系。Kotlin ...

  • Kotlin之美——DSL篇

    Kotlin 系列:Kotlin之美——高效篇Kotlin之美——DSL篇 Kotlin DSL 把 Kotlin...

  • Kotlin之美——高效篇

    Kotlin 系列:Kotlin之美——高效篇Kotlin之美——DSL篇 Kotlin 作为后起之秀,站在巨人们...

  • animation

    动 画平滑过渡动画必须触发鼠标事件(滑过、点击、访问过后) transition 是用于完成平滑过渡的属性,要过渡...

  • 使用Nginx实现Web应用灰度发布

    文章来源: 运维之美(Hi-Linux) 微信公众号 灰度发布是指在黑与白之间,能够实现应用系统平滑过渡的一种独特...

  • 列表的排序过渡

    当插入或移除元素的时候,虽然有过渡动画,但是周围的元素会瞬间移动到新的位置,而不是平滑地过渡。为了实现平滑过渡,可...

  • transition vs transform vs trans

    transition: [ || || || ] transition:过渡效果,使页面变化更平滑 t...

  • C3的过渡动画及3D效果

    一.动画的基本语法和参数 1,过渡:transition:使元素指定属性从A状态过渡平滑过渡到B状态,而不是直接过...

  • css3语法 用法 参数

    一.动画的基本语法和参数 1,过渡:transition:使元素指定属性从A状态过渡平滑过渡到B状态,而不是直接过...

  • iOS 解决控制器转场的一套方案

    之前写过了一篇关于 导航栏平滑过渡的实现 的文章,主要实现的功能是在控制器转场的过程当中为导航栏实现平滑过渡的效果...

网友评论

    本文标题:kotlin 之美(平滑过渡)

    本文链接:https://www.haomeiwen.com/subject/zosvnqtx.html