kotlin 之美(平滑过渡)
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 语言 struct对interface的实现。
扩展函数并不允许打破类封闭性,扩展函数中是无法访问到类私有或者者受保护的成员。
扩展函数在 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 viewclicked on button但是扩展函数并不是类的一部分,我们做一个试验让基类View和Button都扩展了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 方法。
说明
1. 本站所有资源来源于用户上传和网络,如有侵权请邮件联系站长!
2. 分享目的仅供大家学习和交流,您必须在下载后24小时内删除!
3. 不得使用于非法商业用途,不得违反国家法律。否则后果自负!
4. 本站提供的源码、模板、插件等等其他资源,都不包含技术服务请大家谅解!
5. 如有链接无法下载、失效或广告,请联系管理员处理!
6. 本站资源售价只是摆设,本站源码仅提供给会员学习使用!
7. 如遇到加密压缩包,请使用360解压,如遇到无法解压的请联系管理员
开心源码网 » kotlin 之美(平滑过渡)
1. 本站所有资源来源于用户上传和网络,如有侵权请邮件联系站长!
2. 分享目的仅供大家学习和交流,您必须在下载后24小时内删除!
3. 不得使用于非法商业用途,不得违反国家法律。否则后果自负!
4. 本站提供的源码、模板、插件等等其他资源,都不包含技术服务请大家谅解!
5. 如有链接无法下载、失效或广告,请联系管理员处理!
6. 本站资源售价只是摆设,本站源码仅提供给会员学习使用!
7. 如遇到加密压缩包,请使用360解压,如遇到无法解压的请联系管理员
开心源码网 » kotlin 之美(平滑过渡)