美文网首页kotlinKotlin从入门到放弃
Kotlin 之旅1--Kotlin简介与环境搭建

Kotlin 之旅1--Kotlin简介与环境搭建

作者: 小楠总 | 来源:发表于2017-07-21 10:50 被阅读375次

    Kotlin简介

    Kotlin是什么

    Kotlin是JetBrains公司开发的一门语言(主要开发人员是Andrey--Kotlin之父),一圣彼得堡附近的Kotlin岛屿来命名的。保证了Java的生态、静态特性,同时在语法上又灵活一些,比如不写分号、支持扩展方法、支持Lambda、支持函数式编程,空类型安全。

    Kotlin是一门可以运行在JVM、Android、浏览器、甚至操作系统上面的一门静态强类型语言,可以编译成JavaScript源码,运行在浏览器上,与Java100%兼容。

    • Kotlin在2017年5月18日成为了Android的开发语言
    • 100%兼容Java,甚至具备Java不具备的新特性
    • Kotlin的目标是发展成为一门全栈开发语言,Kotlin可以编译成JS源码,开发前端。可以跑在JVM上开发服务端,Kotlin-Native可以编译成机器码,直接跑在操作系统上。
    • Kotlin支持中文编写代码,例如变量名、类名、包名等都可以为中文。(但是实际开发中一般不推荐用中文,因为会带来字符编码等问题)

    Kotlin发展历程

    1. 2010立项
    2. 2011.6公开
    3. 2012.2开源
    4. 2013.8支持Android Studio
    5. 2014.6开源web站点与域名Kotlinlang.org上线
    6. 2016.2发布1.0(API趋于稳定)
    7. 2016.9发布1.0.4,支持apt
    8. ...后续

    Kotlin的特性

    为什么有了Java还需要有Kotlin?下面就看看Kotlin的一些特性吧:

    • 空类型安全
    • Lambda表达式
    • 扩展方法
    • 类型推导
    • 胜任Java能做的所有事情,使用起来比Java简单,例如没有句末分号

    Kotlin相关参考资料

    https://kotlinlang.org

    https://blog.jetbrains.com/kotlin/

    https://github.com/JetBrains/kotlin

    Kotlin温馨公众号

    Kotlin环境搭建

    Kotlin练习环境搭建之--Hello Word!

    下面我们先用IDEA来创建一个项目,打开IDEA,创建项目,选择Kotlin(JVM),如下图所示:

    Kotlin创建项目.png
    Tips:如果没有Kotlin选项,请先安装Kotlin插件,创建项目需要选择lib库。
    Tips:首次创建项目需要Index一两分钟。

    与Java一样,在src目录下面创建一个Package,创建.kt文件:

    fun main(args: Array<out String>) {
        print("Hello Word\n")
        //创建类的时候不需要new关键字了
        print(MyBean(1, "test bean"))
    }
    
    //Kotlin风格的数据对象
    data class MyBean(var id: Int, var name: String)
    

    那么程序就会输出:

    Hello Word
    MyBean(id=1, name=test bean)
    

    细心的朋友可能会发现,其实println就是调用了Java的方法:

    @kotlin.internal.InlineOnly
    public inline fun println(message: Any?) {
        System.out.println(message)
    }
    

    Kotlin练习环境搭建之--使用Gradle搭建环境(推荐)

    Gradle是一个依赖管理的工具,以前我们都是直接把jar包等源码直接拷贝进来的,但是这样很麻烦。有了Gradle之后,我们就可以通过脚本或者图形化界面进行依赖管理了,对以后依赖库的升级维护也很方便。

    同样用IDEA进行开发,下面我们创建一个项目,选择Gradle、Kotlin,如下图所示:

    Gradle创建Java与Kotlin项目.png

    接下来配置构件信息,其中包括代表公司或者组织的GroupId,代表自己在公司或者组织里面的代表自己的ArticleFactId,然后就是构件的版本:

    配置构件的信息.png

    然后就是配置Gradle,这里笔者使用自己本地的Gradle,然后选择生成一些重要的文件夹,例如src/main/java目录:

    配置Gradle.png

    项目创建好之后如下:

    项目一览.png

    工具已经帮我们创建好需要的目录了。我们下面来看一些与Gradle相关的重要文件:

    settings.gradle:是存放每个module的信息的,其内容如下:

    rootProject.name = 'KotlinDemo'
    

    build.gradle,与build相关的脚本,其内容如下:

    group 'nan.com'
    version '1.0-SNAPSHOT'
    
    buildscript {
        repositories {
            //下面的dependencies中,插件的地址
            jcenter()
        }
        dependencies {
            classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:1.0.4"
        }
    }
    
    //标识Java与Kotlin工程,存放着与编译相关的一系列指令集
    apply plugin: 'java'
    apply plugin: 'kotlin'
    
    //标识Java的版本,这里没有使用到
    sourceCompatibility = 1.5
    
    repositories {
        //module中的依赖的地址
        jcenter()
    }
    
    //Gradle中最重要的功能--依赖管理
    dependencies {
        compile "org.jetbrains.kotlin:kotlin-stdlib:1.0.4"
        testCompile group: 'junit', name: 'junit', version: '4.11'
    }
    

    使用Gradle进行依赖管理

    由于Kotlin中,反射包是独立与基础包的,因此我们以反射这个包为例子,介绍一下使用Gradle进行依赖管理。

    修改build.gradle:

    //Gradle中最重要的功能--依赖管理
    dependencies {
        compile "org.jetbrains.kotlin:kotlin-stdlib:1.0.4"
        //增加反射依赖
        compile "org.jetbrains.kotlin:kotlin-reflect:1.0.4"
        testCompile group: 'junit', name: 'junit', version: '4.11'
    }
    

    然后就可以在代码中进行反射操作了,例如我们拿到Person类的构造方法,并且打印出来:

    fun main(args: Array<String>) {
        Person::class.constructors.map {
            print(it)
        }
    
        //也可以通过代码提示直接改成这种写法
        Person::class.constructors.map(::print)
    }
    
    data class Person(var id: Int, var name: String) {
    
    }
    

    如果觉得我的文字对你有所帮助的话,欢迎关注我的公众号:

    公众号:Android开发进阶

    我的群欢迎大家进来探讨各种技术与非技术的话题,有兴趣的朋友们加我私人微信huannan88,我拉你进群交(♂)流(♀)

    相关文章

      网友评论

        本文标题:Kotlin 之旅1--Kotlin简介与环境搭建

        本文链接:https://www.haomeiwen.com/subject/zbhzhxtx.html