Skip to content

Kotlin尝鲜 #71

@mengming

Description

@mengming

最近google官方宣布kotlin成为安卓官方开发语言,被称为安卓界的swift,很久没有码代码的我打开了AS尝尝鲜。

Kotlin是什么

Kotlin是一门静态类型、基于JVM的语言,是由JetBrains开发的,没错就是开发Android Studio的公司。


Kotlin的优势

  • 简洁性
    我们都知道Java一直都被吐槽说繁琐冗杂,而Kotlin应该就是上天派来拯救安卓开发者的吧。
    举个简单的例子,你们应该都会讨厌一个东西,那就是getter和setter,即使有插件可以自动填充,你也会觉得看到这些代码觉得很烦躁吧。
    Java中仅仅是3个变量的类就要写这么一大串
public class Data {
    private int id;
    private String account;
    private String password;

    public int getId() {
        return id;
    }

    public void setId(int id) {
        this.id = id;
    }

    public String getAccount() {
        return account;
    }

    public void setAccount(String account) {
        this.account = account;
    }

    public String getPassword() {
        return password;
    }

    public void setPassword(String password) {
        this.password = password;
    }
}

而Kotlin只需要短短几行

class Data {
    var id: Int = 0
    var account: String? = null
    var password: String? = null
}

也可以通过构造函数赋值

class Data(var id: Int, var account: String?, var password: String?)

是不是有种相见恨晚的感觉

  • 空安全
    空指针几乎是大部分bug的原因所在,而Kotlin会帮我们极大的降低空指针的可能。一旦要求变量不能为空,那么空指针异常的可能性就没有了。
    举个简单的例子:
val anInt: Int = null // 错误
val anotherInt: Int? = null // 正确
  • 拓展类
    Java中的API都是比较简单的,很多时候我们要组合处理,于是产生了Utils类。我们只需要重写一个拓展方法,感觉就像Java给我们提供了这么一个方法,优点就是简化了调用过程。
  • 函数式支持
    Kotlin支持Lambda表达式,会让我们的程序看起来更加简洁明了。
  • 编译速度稍快
    Kotlin VS Java:编译速度大比拼,到底谁更快?
    这篇文章测试了Java和Kotlin的编译速度,当然在这方面Kotlin并不会有太大优势,但至少,它已经不会输给Java了。
  • 等等(其他的我也不了解了)

Kotlin试用与学习

划重点划重点

其实这篇中真正是我探索到的也就这么点东西了。
记录下我根据官方文档来试用Kotlin的经历。
就在我写下这篇文章不久前,AS似乎发布了3.0,已经支持了Kotlin的直接使用。如果你还在用2.x并且想试试的话,就跟着做就好了。

  • 首先安装Kotlin的插件
    File | Settings | Plugins | Install JetBrains plugin,然后搜索Kotlin点击install就好了
  • 转换一下Java代码
    使用Find Action方法(windows中是ctrl+shift+A),搜索convert java file to kotlin,将一个java文件转换为kotlin代码。

转换前

转换后

  • 然后开始编辑代码,AS会提示你configure

  • 然后选择最新的版本配置

  • 之后sync一下gradle和project就可以了

  • 接下来你就可以愉快的开始写kotlin代码了
    刚开始学习,很多可能都不懂,有一个简单的学习方法是写好java文件然后转换为kotlin进行学习(ctrl+shift+alt+k),但是有时候你会发现转换之后会报错,因为kotlin和java的语法还是有些许出入,虽然从java转kotlin不会很难,但也不是那么容易上手的。

Kotlin语法怎么学

我也还不会啊。
推荐一份中文文档给大家
https://github.com/huanglizhuo/kotlin-in-chinese


以上借鉴了很多文章:
http://blog.csdn.net/sergeycao/article/details/54984108
http://www.techug.com/post/kotlin-vs-java.html
http://www.codeceo.com/article/android-developer-know-kotlin.html
http://www.jcodecraeer.com/a/anzhuokaifa/androidkaifa/2016/0226/4000.html
http://www.infoq.com/cn/news/2015/06/Android-JVM-JetBrains-Kotlin
当然,最好的学习方法还是上kotlin官网看英文文档啦

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions