Kotlin学习笔记之基础语法一
编程行业已经混了4,5年了,接触了各种形形色色的编程语言,学习某一种语言的兴趣来源纯粹是因为某些网络大牛对它的各种吹捧,很少有去深入考虑过这门语言是否真的适合我。
话说回来,到我这个年纪再去学习什么新的语言似乎有点廉颇老亦的感觉,偶然接触到了kotlin这门语言,瞬间有种相见恨晚的激动,说不上为什么。终于下定决心在有生之年再接触一门语言,就它了。
一边学习,一边记录,点滴之间。
本人是Java的铁粉,也是我事业的主要方向,但接触过很多其他语言之后也发现了Java编程中的过程繁杂和无奈,比如一段期间接手IOS开发,一直非常羡慕OBJC 语言的一个牛逼特性 — 类型扩展。 简单点说就是能够对任何类,甚至系统类动态扩展新的方法或属性,而不是通过继承等方式。相信很多人也有过类似的经历和想法。
简单看过Kotlin的介绍及语法之后,更加坚定了我学习这门语言的决心,理由有以下几点:
- 与Java完全兼容,因为Kotlin也是基于JVM的语言,在设计上完全兼容了Java的语言,Java的API,Java的类,因此我们可以在Kotlin中调用Java的任何功能,Java中也可以调用Kotlin中的API.
- Kotlin实现了接口扩展技术,这也是让我非常激动的特性,从此可以让自己的代码简洁到不能再简洁。
- Kotlin 还照搬了其他各种语言的长处,如Lamda表达式,switch超级扩展(不于限于case 常量),getter/setter (又一个照搬OBJC的语法),属性委托,语法上也模仿了ios新的开发语言swift等等,这些新特性往往是其他语言的精华所在,现在全部融入到了kotlin中,一语在手,天下我有的豪迈之气。
- Kotlin 的空指针处理也是一大亮点,他将类型强制分为了可空各非空两种类型,极大的提高了系统设计的稳定性。
- kotlin 竟然又将多重继承从C++中搬过来了!!虽然多重继承在设计上有很多隐患和缺陷,但他却真实的有其充分发挥的用武之地。很可惜的是Java并不支持,而要通过接口这种诡异的形式来变相实现多重继承。
说了这么多,其实远非这么多,最近熬夜吃小灶,希望能够快速系统的学习其所有语法和特性。
特此记录,以便回顾学习。
基础语法
一切学习,都与Java语法对比学习。
源码文件
Java的源码文件我们都知道必须要各类名相同,且不能包含游离的函数。
Kotlin 则允许文件名不需要与类名一致,同时文件中还可以包含任何单独的函数式声明,看起来就像C代码风格。
包名,以及导入导出
包名等基本规则与Java是一致的,直接参