Kotlin学习(8)→增强系统函数


在期待着郭霖先生的《第一行代码(第三版)》时,意识到自己需要补充必要的Kotlin知识。现在写文章分享自己学习Kotlin基础知识的过程,争取拿到书之后能早日上手。
使用的软件是IDEA 2019,文章中如有错误或者欠缺的地方,欢迎批评指正。
(参考书为《Kotlin从零到精通Android开发》,欧阳燊著,清华大学出版社2018年4月第一版,ISBN 978-7-302-49814-8)。感谢欧阳先生的优秀教材。

文章来源于 我的简书

1、拓展函数

有些时候,系统类中提供的方法不能满足我们所有的需求。这时候,Java开发者往往会写自己的工具类,但是这样会比较繁琐。例如,我需要有某种比较字符串的方法,新写一个类会比较麻烦,既然都是对字符串操作,能不能将自己写的函数加入到系统String类中呢?
Kotlin允许这样做,给开发者提供了极大的方便。
例如,现在要有一个方法,需要对所有类型的数组交换指定位置的两个元素。
现在,就可以有以下的解决方案:
拓展函数例子

可以看到,要想在系统类中加入自己定义的函数,方法是:系统类名.函数名,接着,这里的this代表使用这个方法的对象名,这里即调用这个函数的数组。在这里,给定了两个参数作为数组的下标,交换这两个位置的数据的值。
调用的时候,系统拓展函数需要
借助对象调用或者通过匿名对象调用。

例如Date类构造函数之一为Date(),有拓展函数getNowDate(),调用该拓展函数的方式可以是:

Date().getNowDate()

2、单例对象与函数

调用系统函数的方式稍显复杂,需要先构造对象才能使用。Kotlin和Java中的Util工具类类似,提供了单例对象的办法,可以直接通过单例对象名来调用其中的函数。下面给出例子,获取当前日期:
单例对象获取当前日期

可以看到,单例对象声明关键字为object,其他部分和类相同,使用时,通过单例对象名调用,相当于Java中的静态函数。这种方法更适合写工具类,调用起来非常方便。
输出结果:
2020-01-21

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值