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

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 之旅1--Kotlin简介与环境搭建_第1张图片
Kotlin创建项目.png
Tips:如果没有Kotlin选项,请先安装Kotlin插件,创建项目需要选择lib库。
Tips:首次创建项目需要Index一两分钟。

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

fun main(args: Array) {
    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,如下图所示:

Kotlin 之旅1--Kotlin简介与环境搭建_第2张图片
Gradle创建Java与Kotlin项目.png

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

Kotlin 之旅1--Kotlin简介与环境搭建_第3张图片
配置构件的信息.png

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

Kotlin 之旅1--Kotlin简介与环境搭建_第4张图片
配置Gradle.png

项目创建好之后如下:

Kotlin 之旅1--Kotlin简介与环境搭建_第5张图片
项目一览.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) {
    Person::class.constructors.map {
        print(it)
    }

    //也可以通过代码提示直接改成这种写法
    Person::class.constructors.map(::print)
}

data class Person(var id: Int, var name: String) {

}

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

Kotlin 之旅1--Kotlin简介与环境搭建_第6张图片
公众号:Android开发进阶

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

你可能感兴趣的:(Kotlin 之旅1--Kotlin简介与环境搭建)