Kotlin 從入門到放棄 - 01

本文始發(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)境變量的過程。

  1. 打開冠跷,我的電腦 --> 屬性 --> 高級(jí) --> 環(huán)境變量

  2. 新建系統(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ù)制即可)

  3. 選擇「系統(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


最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末熄赡,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子齿税,更是在濱河造成了極大的恐慌彼硫,老刑警劉巖,帶你破解...
    沈念sama閱讀 219,039評(píng)論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件凌箕,死亡現(xiàn)場(chǎng)離奇詭異拧篮,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)牵舱,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,426評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門串绩,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人仆葡,你說我怎么就攤上這事。” “怎么了沿盅?”我有些...
    開封第一講書人閱讀 165,417評(píng)論 0 356
  • 文/不壞的土叔 我叫張陵把篓,是天一觀的道長。 經(jīng)常有香客問我腰涧,道長韧掩,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,868評(píng)論 1 295
  • 正文 為了忘掉前任窖铡,我火速辦了婚禮疗锐,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘费彼。我一直安慰自己滑臊,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,892評(píng)論 6 392
  • 文/花漫 我一把揭開白布箍铲。 她就那樣靜靜地躺著雇卷,像睡著了一般。 火紅的嫁衣襯著肌膚如雪颠猴。 梳的紋絲不亂的頭發(fā)上关划,一...
    開封第一講書人閱讀 51,692評(píng)論 1 305
  • 那天,我揣著相機(jī)與錄音翘瓮,去河邊找鬼贮折。 笑死,一個(gè)胖子當(dāng)著我的面吹牛资盅,可吹牛的內(nèi)容都是我干的调榄。 我是一名探鬼主播,決...
    沈念sama閱讀 40,416評(píng)論 3 419
  • 文/蒼蘭香墨 我猛地睜開眼律姨,長吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼振峻!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,326評(píng)論 0 276
  • 序言:老撾萬榮一對(duì)情侶失蹤迈勋,失蹤者是張志新(化名)和其女友劉穎计雌,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體凤价,經(jīng)...
    沈念sama閱讀 45,782評(píng)論 1 316
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,957評(píng)論 3 337
  • 正文 我和宋清朗相戀三年拔创,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了利诺。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 40,102評(píng)論 1 350
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡剩燥,死狀恐怖慢逾,靈堂內(nèi)的尸體忽然破棺而出立倍,到底是詐尸還是另有隱情,我是刑警寧澤侣滩,帶...
    沈念sama閱讀 35,790評(píng)論 5 346
  • 正文 年R本政府宣布口注,位于F島的核電站,受9級(jí)特大地震影響君珠,放射性物質(zhì)發(fā)生泄漏寝志。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,442評(píng)論 3 331
  • 文/蒙蒙 一策添、第九天 我趴在偏房一處隱蔽的房頂上張望材部。 院中可真熱鬧,春花似錦唯竹、人聲如沸乐导。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,996評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽兽叮。三九已至,卻和暖如春猾愿,著一層夾襖步出監(jiān)牢的瞬間鹦聪,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,113評(píng)論 1 272
  • 我被黑心中介騙來泰國打工蒂秘, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留泽本,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 48,332評(píng)論 3 373
  • 正文 我出身青樓姻僧,卻偏偏與公主長得像规丽,于是被迫代替她去往敵國和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子撇贺,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,044評(píng)論 2 355

推薦閱讀更多精彩內(nèi)容