本文始發(fā)于公眾號(hào):ikook,文末掃碼關(guān)注捌木。
文章鏈接:https://mp.weixin.qq.com/s/dqKF5QfXopu2wvGiKCnOSQ
從今天開始和大家一起踏上 Kotlin 從入門到放棄之旅贫堰,先來一篇用于熱身涂籽,帶大家認(rèn)識(shí)什么是 Kotlin睹晒,以及環(huán)境搭建和基本的使用漂辐。
什么是 Kotlin
簡(jiǎn)單來說衡蚂,Kotlin 是一門由「JetBrains」開發(fā)的基于 JVM 的靜態(tài)類型編程語言窿克,它 100% 兼容 Java。
它可以用于:
- 服務(wù)器開發(fā)
- Android 開發(fā)
- 前端開發(fā)
- 本地執(zhí)行程序
這是要全棧的節(jié)奏啊毛甲,它的目標(biāo)應(yīng)該就是要成為一門全棧編程語言年叮。
維基百科介紹
Kotlin 是一種在 Java 虛擬機(jī)上運(yùn)行的靜態(tài)類型編程語言,它也可以被編譯成為 JavaScript 源代碼玻募。它主要是由俄羅斯圣彼得堡的 JetBrains 開發(fā)團(tuán)隊(duì)所發(fā)展出來的編程語言只损,其名稱來自于圣彼得堡附近的科特林島。2012 年 1 月七咧,著名期刊《 Dr. Dobb's Journal 》中 Kotlin 被認(rèn)定為該月的最佳語言跃惫。雖然與 Java 語法并不兼容,但 Kotlin 被設(shè)計(jì)成可以和 Java 代碼相互運(yùn)作艾栋,并可以重復(fù)使用如 Java 集合框架等的現(xiàn)有 Java 類庫爆存。
歷史
2011 年 7 月,JetBrains 推出 Kotlin 項(xiàng)目蝗砾,這是一個(gè)面向 JVM 的新語言先较,它已被開發(fā)一年之久。JetBrains 負(fù)責(zé)人 Dmitry Jemerov 說悼粮,大多數(shù)語言沒有他們正在尋找的特性闲勺,Scala 除外,他指出了 Scala 的編譯時(shí)間慢這一明顯缺陷扣猫。Kotlin 的既定目標(biāo)之一是像 Java 一樣快速編譯霉翔。
2012 年 2 月,JetBrains 以 Apache 2 許可證開源此項(xiàng)目苞笨,Jetbrains 希望這個(gè)新語言能夠推動(dòng) IntelliJ IDEA 的銷售。
Kotlin v1.0 于 2016 年 2 月 15 日發(fā)布子眶。這被認(rèn)為是第一個(gè)官方穩(wěn)定版本瀑凝,并且 JetBrains 已準(zhǔn)備從該版本開始的長期向后兼容性。
在 Google I/O 2017 中臭杰,Google 宣布在 Android 上為 Kotlin 提供支持粤咪。
開發(fā)環(huán)境搭建
安裝 Java
Kotlin 是基于 JVM 的編程語言,所以首先一定要先安裝好 Java 開發(fā)環(huán)境渴杆,并配置好環(huán)境變量寥枝。點(diǎn)擊鏈接:Java SE 宪塔,下載對(duì)應(yīng)版本,安裝完成后配置環(huán)境變量囊拜。安裝過程自行 Google某筐。
下面貼一下 Windows 下配置環(huán)境變量的過程。
打開冠跷,我的電腦 --> 屬性 --> 高級(jí) --> 環(huán)境變量
新建系統(tǒng)變量 JAVA_HOME 和 CLASSPATH:
變量名:JAVA_HOME
變量值:C:\Program Files\Java\jdk1.7.0(這個(gè)是你JDK安裝的位置南誊,注意變量值到JAVA JDK文件夾,復(fù)制粘貼)
變量名:CLASSPATH
變量值:.;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar;(復(fù)制即可)選擇「系統(tǒng)變量」中變量名為「Path」的環(huán)境變量蜜托,雙擊該變量抄囚,把 JDK 安裝路徑中 bin 目錄的絕對(duì)路徑,添加到「Path」變量的值中橄务,如下幔托。
變量名:Path
變量值:%JAVA_HOME%\bin;%JAVA_HOME%\jre\bin;(在系統(tǒng)變量中找到「Path」變量,把前面的變量放到原有變量最前面)
安裝 Kotlin
我這里選擇 Working with the Command Line Compiler 的方式來開始學(xué)習(xí) Kotlin蜂挪。使用這種方式便于理解 Kotlin 的運(yùn)行原理重挑,并且命令行其實(shí)也是蠻炫酷的,更沒有想象的那么難锅劝,命令不會(huì)可以查攒驰。
Windows
在 GitHub 中下載安裝包,然后手動(dòng)解壓到自己想要的目錄故爵,解壓完成后玻粪,配置環(huán)境變量。將 Kotlin 解壓目錄下的 bin 路徑添加到環(huán)境變量的「系統(tǒng)變量」中「Path」下诬垂。
Mac & Linux
如果你是 Mac 或者 Linux 系統(tǒng)可以使用下面方式中的任意一種劲室。由于我用的是 Windows,不保證下列方式均可行结窘,并且沒有測(cè)試過很洋,只是將官方的方法照搬過來而已。
SDKMAN!
$ curl -s https://get.sdkman.io | bash
$ sdk install kotlin
Homebrew
$ brew update
$ brew install kotlin
MacPorts
$ sudo port install kotlin
創(chuàng)建并運(yùn)行第一個(gè) Kotlin 程序
新建一個(gè)名為 hello.kt 的文件隧枫,擴(kuò)展名 .kt 代表是 Kotlin 文件喉磁。在文件中輸入以下內(nèi)容:
fun main(args: Array<String>) {
println("Hello, World!")
}
然后在終端(Terminal)中輸入以下命令:
$ kotlinc hello.kt -include-runtime -d hello.jar
注:「kotlinc」 是編譯的意思,類似于 javac官脓;「hello.kt」 是需要編譯的文件名协怒;「-include-runtime」代表包含進(jìn) kotlin 運(yùn)行時(shí)庫來運(yùn)行 hello.kt 的代碼來生成 .jar 文件;「-d」代表打包成 .jar 文件的名字卑笨。由于 Kotlin 是 JVM 語言孕暇,所以最終是轉(zhuǎn)換成 jar 包的。
然后,繼續(xù)在終端輸入以下命令來運(yùn)行程序:
$ java -jar hello.jar
輸出 Hello, World!
代表運(yùn)行成功妖滔。
如果要開發(fā)由其他 Kotlin 程序使用的庫隧哮,則可以生成 .jar 文件,而不包含運(yùn)行時(shí)庫:
$ kotlinc hello.kt -d hello.jar
在使用該 library 時(shí)座舍,需要依賴 Kotlin 運(yùn)行時(shí)環(huán)境沮翔,所以在編譯時(shí),應(yīng)將出現(xiàn)在類路徑中:
$ kotlin -classpath hello.jar HelloKt
注:HelloKt 是 Kotlin 編譯器為 hello.kt 文件生成的主類名簸州。
這種方式和上面的區(qū)別在于第二步給 hello.jar 指定了一個(gè)類 HelloKt鉴竭,讓 hello.jar 中的代碼運(yùn)行在 HelloKt 類里。
交互式 Kotlin shell
Kotlin 內(nèi)置有一個(gè)交互式的 Shell岸浑。交互式 shell 的意思是可以直接在 shell 里輸入代碼搏存,然后回車直接立即執(zhí)行。
在終端輸入:
$ kotlinc-jvm
會(huì)輸出以下歡迎信息:
Welcome to Kotlin version 1.1.2-5 (JRE 1.8.0_112-b15)
Type :help for help, :quit for quit
歡迎信息中給出了退出的方式「:quit」
Kotlin 腳本
Kotlin 也可以直接執(zhí)行腳本矢洲¤得撸「腳本」就是在一個(gè)文件中寫入想要執(zhí)行的代碼,然后輸入一個(gè)命令就可以直接執(zhí)行腳本里面的代碼读虏,不需要編譯责静。Kotlin 腳本以 .kts 拓展名結(jié)尾。
例如:
新建名為 hello.kts 的腳本盖桥,在其中輸入以下代碼:
println("Hello Kotlin Script!")
然后在終端輸入:
$ kotlinc -script hello.kts
腳本執(zhí)行灾螃,然后輸出:
Hello Kotlin Script!
至此,Kotlin 從入門到放棄的第一篇「開始」就介紹完了揩徊,本文介紹了 Kotlin 的安裝方式以及使用命令執(zhí)行 Kotlin 程序的方法腰鬼。建議其中內(nèi)容均手動(dòng)實(shí)踐幾遍,實(shí)踐出真知塑荒。
本文參考及學(xué)習(xí)地址:JetBrains/kotlin: Working with the Command Line Compiler
ikook
2017.07.29