FAQ
Kotlin 是什么?
Kotlin 是一門針對(duì) JVM稼稿、Android硫嘶、JavaScript 以及原生平臺(tái)的開源(OSS)靜態(tài)類型編程語言淘太。 它是由 JetBrains 開發(fā)的啊终。該項(xiàng)目開始于 2010 年并且很早就已開源。第一個(gè)官方 1.0 版發(fā)布于 2016 年 2 月甫匹。
Kotlin 的當(dāng)前版本是多少甸鸟?
目前發(fā)布的版本是 1.3.11,發(fā)布于 2018-12-06兵迅。
Kotlin 是免費(fèi)的嗎抢韭?
是。Kotlin 是免費(fèi)的恍箭,已經(jīng)免費(fèi)并會(huì)保持免費(fèi)刻恭。它是遵循 Apache 2.0 許可證開發(fā)的,其源代碼可以在 GitHub 上獲得扯夭。
Kotlin 是面向?qū)ο筮€是函數(shù)式語言鳍贾?
Kotlin 既具有面向?qū)ο笥志哂泻瘮?shù)式結(jié)構(gòu)鞍匾。你既可以按 OO 風(fēng)格也可以按 FP 風(fēng)格使用,還可以混合使用兩種風(fēng)格骑科。 通過對(duì)諸如高階函數(shù)橡淑、函數(shù)類型和 lambda 表達(dá)式等功能的一等支持,Kotlin 是一個(gè)很好的選擇咆爽,如果你正在進(jìn)行或探索函數(shù)式編程的話梁棠。
Kotlin 能給我超出 Java 語言的哪些優(yōu)點(diǎn)?
Kotlin 更簡(jiǎn)潔伍掀。粗略估計(jì)顯示掰茶,代碼行數(shù)減少約 40%。 它也更安全蜜笤,例如對(duì)不可空類型的支持使應(yīng)用程序不易發(fā)生 NPE。 其他功能包括智能類型轉(zhuǎn)換盐碱、高階函數(shù)把兔、擴(kuò)展函數(shù)和帶接收者的 lambda 表達(dá)式嫉柴,提供了編寫富于表現(xiàn)力的代碼的能力以及易于創(chuàng)建 DSL 的能力僵闯。
Kotlin 與 Java 語言兼容嗎?
兼容禀倔。Kotlin 與 Java 語言可以 100% 互操作暖混,并且主要強(qiáng)調(diào)確保你現(xiàn)有的代碼庫(kù)可以與Kotlin 正確交互缕贡。你可以輕松地在 Java 中調(diào)用 Kotlin 代碼以及在 Kotlin 中調(diào)用 Java 代碼。 這使得采用 Kotlin 更容易拣播、風(fēng)險(xiǎn)更低晾咪。內(nèi)置于 IDE 的自動(dòng)化 Java 到 Kotlin 轉(zhuǎn)換器可簡(jiǎn)化現(xiàn)有代碼的遷移。
我可以用 Kotlin 做什么贮配?
Kotlin 可用于任何類型的開發(fā)谍倦,無論是服務(wù)器端、客戶端 Web 還是 Android泪勒。隨著原生 Kotlin(Kotlin/Native)目前的進(jìn)展昼蛀,對(duì)其他平臺(tái)(如嵌入式系統(tǒng)、macOS 和 iOS)的支持即將就緒圆存。人們將 Kotlin 用于移動(dòng)端和服務(wù)器端應(yīng)用程序叼旋、使用 JavaScript 或 JavaFX的客戶端、以及數(shù)據(jù)科學(xué)沦辙,僅舉這幾例夫植。
我可以用 Kotlin 進(jìn)行 Android 開發(fā)嗎?
可以怕轿。Kotlin 已作為 Android 平臺(tái)的一等語言而支持偷崩。已經(jīng)有數(shù)百種應(yīng)用程序在使用 Kotlin 用于 Android 開發(fā)辟拷,比如 Basecamp、Pinterest 等等阐斜。更多信息請(qǐng)查看 Android 開發(fā)資源衫冻。
我可以用 Kotlin 進(jìn)行服務(wù)器端開發(fā)嗎?
可以谒出。Kotlin 與 JVM 100% 兼容隅俘,因此你可以使用任何現(xiàn)有的框架,如 Spring Boot笤喳、 vert.x 或 JSF为居。另外還有一些 Kotlin 寫的特定框架,例如 Ktor杀狡。 更多信息請(qǐng)查看服務(wù)器端開發(fā)資源蒙畴。
我可以用 Kotlin 進(jìn)行 web 開發(fā)嗎?
可以呜象。除了用于后端 Web膳凝,你還可以使用 Kotlin/JS 用于客戶端 Web。Kotlin 可以使用 DefinitelyTyped 中的定義來獲取常見 JavaScript 庫(kù)的靜態(tài)類型版恭陡,并且它與現(xiàn)有的模塊系統(tǒng)(如 AMD 和 CommonJS)兼容蹬音。 更多信息請(qǐng)查看客戶端開發(fā)中的資源。
我可以用 Kotlin 進(jìn)行桌面開發(fā)嗎休玩?
可以著淆。你可以使用任何 Java UI 框架如 JavaFx、Swing 或其他框架拴疤。 另外還有 Kotlin 特定框架永部,如 TornadoFX。
我可以用 Kotlin 進(jìn)行原生開發(fā)嗎遥赚?
原生 Kotlin(Kotlin/Native)目前正在準(zhǔn)備中扬舒。它將 Kotlin 編譯為可以無需 VM 運(yùn)行的原生代碼。有一個(gè)技術(shù)預(yù)覽發(fā)布版凫佛,但它還不能用于生產(chǎn)讲坎,并且 1.0 我們還沒有針對(duì)所有平臺(tái)支持的計(jì)劃。更多信息請(qǐng)查看 Kotlin/Native 博文公告愧薛。
哪些 IDE 支持 Kotlin晨炕?
所有主要的 Java IDE 都支持 Kotlin,包括 IntelliJ IDEA毫炉、 Android Studio瓮栗、Eclipse 和 NetBeans。另外,有一個(gè)命令行編譯器可用费奸,為編譯和運(yùn)行應(yīng)用程序提供了直接的支持弥激。
哪些構(gòu)建工具支持 Kotlin?
在 JVM 端愿阐,主要構(gòu)建工具包括 Gradle微服、Maven、 Ant 和 Kobalt缨历。還有一些可用于構(gòu)建客戶端 JavaScript 的構(gòu)建工具以蕴。
Kotlin 會(huì)編譯成什么?
當(dāng)針對(duì)JVM 平臺(tái)時(shí)辛孵,Kotlin 生成 Java 兼容的字節(jié)碼丛肮。當(dāng)針對(duì)JavaScript 時(shí),Kotlin 會(huì)轉(zhuǎn)譯到 ES5.1魄缚,并生成與包括 AMD 和 CommonJS 在內(nèi)的模塊系統(tǒng)相兼容的代碼宝与。當(dāng)針對(duì)原生平臺(tái)時(shí),Kotlin 會(huì)(通過 LLVM)生成平臺(tái)相關(guān)的代碼冶匹。
Kotlin 只針對(duì) Java 6 嗎伴鳖?
不是。Kotlin 可以讓你選擇生成 Java 6 或者 Java 8 兼容的字節(jié)碼徙硅。可以為較高版本的平臺(tái)生成更優(yōu)化的字節(jié)碼搞疗。
Kotlin 難嗎嗓蘑?
Kotlin 是受 Java、C#匿乃、JavaScript桩皿、Scala 以及 Groovy 等現(xiàn)有語言的啟發(fā)。我們已經(jīng)努力確保 Kotlin 易于學(xué)習(xí)幢炸, 所以人們可以在幾天之內(nèi)輕松轉(zhuǎn)向泄隔、閱讀和編寫 Kotlin。 學(xué)習(xí)慣用的 Kotlin 和使用更多它的高級(jí)功能可能需要一點(diǎn)時(shí)間宛徊,但總體來說這不是一個(gè)復(fù)雜的語言佛嬉。
哪些公司使用 Kotlin?
有太多使用 Kotlin 的公司可列闸天,而有些更明顯的公司已經(jīng)公開宣布使用 Kotlin暖呕,分別通過博文、Github 版本庫(kù)或者演講宣布苞氮,包括 Square湾揽、 Pinterest、 Basecamp 還有 Corda。
誰開發(fā) Kotlin库物?
Kotlin 主要由 JetBrains 的一個(gè)工程師團(tuán)隊(duì)開發(fā)(目前團(tuán)隊(duì)規(guī)模為 40+)霸旗。其首席語言設(shè)計(jì)師是 Andrey Breslav。除了核心團(tuán)隊(duì)戚揭,GitHub 上還有 100 多個(gè)外部貢獻(xiàn)者诱告。
在哪里可以了解關(guān)于 Kotlin 更多?
最好的起始地方好是本網(wǎng)站(原文是英文官網(wǎng))毫目。從那里你可以下載編譯器蔬啡、 在線嘗試以及訪問資源、參考文檔和教程镀虐。
有沒有關(guān)于 Kotlin 的書箱蟆?
已經(jīng)有一些關(guān)于 Kotlin 的書籍。其中包括由 Kotlin 團(tuán)隊(duì)成員 Dmitry Jemerov 和 Svetlana Isakova 合著的 Kotlin in Action刮便、 針對(duì) Android 開發(fā)人員的 Kotlin for Android Developers空猜。
Kotlin 有沒有在線課程?
有一些 Kotlin 的課程恨旱,包括 Kevin Jones 的 Pluralsight Kotlin Course辈毯、 Hadi Hariri 的 O’Reilly Course 以及 Peter Sommerhoff 的 Udemy Kotlin Course。
在 YouTube 和 Vimeo 上也有許多 Kotlin 演講 的錄像搜贤。
有沒有 Kotlin 社區(qū)谆沃?
有。Kotlin 有一個(gè)非常有活力的社區(qū)仪芒。Kotlin 開發(fā)人員常出現(xiàn)在 Kotlin 論壇唁影、 StackOverflow 上并且更積極地活躍在 Kotlin Slack (截至 2018 年 10 月有近 20000 名成員)上。
有沒有 Kotlin 活動(dòng)掂名?
有【萆颍現(xiàn)在有很多用戶組和集會(huì)組專注于 Kotlin。你可以在網(wǎng)站上找到一個(gè)列表饺蔑。 此外锌介,還有世界各地的社區(qū)組織的 Kotlin 之夜活動(dòng)。
有沒有 Kotlin 大會(huì)猾警?
有孔祸。官方的年度 KotlinConf 由 JetBrains 主辦。 分別于 2017 年 在舊金山肿嘲、2018 年在阿姆斯特丹舉行融击。 Kotlin 也會(huì)在全球不同地方舉行大會(huì)。你可以在網(wǎng)站上找到即將到來的會(huì)談列表雳窟。
Kotlin 上社交媒體嗎尊浪?
上匣屡。最活躍的 Kotlin 帳號(hào)是 Twitter 上的。還有一個(gè) Google+ 群組拇涤。
其他在線 Kotlin 資源呢捣作?
網(wǎng)站上有一堆在線資源,包括社區(qū)成員的 Kotlin 文摘鹅士、 通訊券躁、播客等等。
在哪里可以獲得高清 Kotlin 徽標(biāo)掉盅?
徽標(biāo)可以在這里下載也拜。請(qǐng)遵循壓縮包內(nèi) guidelines.pdf
中的簡(jiǎn)單規(guī)則