笔记:学习Kotlin——第一次接触

最近在开发安卓过程中,我总是觉得Java的局限性越来越大,可能是因为Android开发无法使用Java8特性的缘故吧,比如Lambda等,尝试了gradle-retrolambda,但是有很多问题。

这也是催生我学习新语言的原因,使用c#也可以开发安卓,但是依赖Xamarin并且是收费的。

jvm语言且方便开发Android的除了java,还有scala和kotlin。我在网上查了一些资料,scala历史比较悠久,但是上手比kotlin麻烦些。于是我决定学习kotlin,希望它可以成为我开发Android的得力助手。

Kotlin是一个静态语言,相比于Java,它有静态的null检查(万岁,终于没有蛋疼NullPointException了),强大的类型推断能力(在某些情况下无需指定变量数据类型),支持现代语言特性且可编译为低版本java字节码(如Lambda表达式),更简单的表达方式(有助于减少代码体积)等。

不管怎么说,还是从Hello World开始吧~我们来看首个代码:

为了介绍kotlin的更多特性,我将hello world写的有些啰嗦,不过对于学习基础语法是很有帮助的。

第一行和java一样:包名
接着,是一个main函数,它便是kotlin程序的入口点,且有接受命令行参数的String数组。
下面定义了一个变量名为hello,数据类型是String并且初始化为”Hello”。
接着定义了一个终态变量名为world,我们没有指定数据类型并直接赋值了”World”。并且句尾没有分号?!

于是我们知道定义变量使用var关键字,定义终态变量使用val关键字。定义的变量可以在Kotlin可以推断出类型时不指定数据类型,以及Kotlin不需要分号作为code statement结尾(当然加上也没错,且如果一行有多句代码时必须用分号隔开)

最后是一句打印函数,不过这个打印的字符串有些奇怪,它似乎引用了我们定义的变量但是又被双引号围了起来。没错,kotlin支持在字符串里使用表达式,避免了java中用+连接字符串。在字符串用$开头的表达式可以将表达式的计算结果存入字符串中,比如println(“${2+3}”)最终可以输出5。

代码结束了,但是似乎少了什么?没错,我们熟悉的class没有出现,居然可以没有类?没错,kotlin中,函数可以作为基本结构出现,无需依赖类。当然,kotlin是一门面向对象语言,它也是支持类的。关于类,我们下次再说。

You may also like...

6 Responses

  1. 说道:

    这个语言和typescript 好像啊,不过比ts麻烦多了 😮

  2. 说道:

    kotlin支持在字符串里使用表达式,避免了java中用+连接字符串。在字符串用$开头的表达式可以将表达式的计算结果存入字符串中,比如println(“${2+3}”)最终可以输出5 ——我没觉得用+ 多麻烦啊

  3. Caby说道:

    好像挺好玩的,我没专门尝过Android开发,我以前做iOS开发,Swift比OC用起来好多了,只是还不成熟,跟这个kotlin有相似之处。

发表评论

电子邮件地址不会被公开。 必填项已用*标注