跳至內容
主選單
主選單
移至側邊欄
隱藏
導覽
首頁
近期變更
隨機頁面
MediaWiki說明
Taiwan Tongues 台語維基
搜尋
搜尋
外觀
建立帳號
登入
個人工具
建立帳號
登入
檢視 Kotlin 的原始碼
頁面
討論
臺灣正體
閱讀
檢視原始碼
檢視歷史
工具
工具
移至側邊欄
隱藏
操作
閱讀
檢視原始碼
檢視歷史
一般
連結至此的頁面
相關變更
特殊頁面
頁面資訊
外觀
移至側邊欄
隱藏
←
Kotlin
由於以下原因,您無權編輯此頁面:
您請求的操作只有這些群組的使用者能使用:
使用者
、taigi-reviewer、apibot
您可以檢視並複製此頁面的原始碼。
'''Kotlin'''是一種佇 Java 虛擬機頂懸執行的靜態型別程式語言,伊嘛會用得予人編譯做 JavaScript 原始碼。伊主要是由俄羅斯聖那得堡的 JetBrains 開發團隊所發展出來的程式語言,這个名稱來自聖那個得堡附近的科特林島。二空一二年一月,出名期刊《Dr . Dobb's Journal》中 Kotlin 予人認定做是該月的最佳語言。雖然佮 Java 語法並無相容,猶毋過佇 JVM 環境內底 Kotlin 予人設計甲會當和 Java 程式碼相運作,並會當一直使用按呢 Java 集合框架等等的現有 Java 參照的函式庫。Hathibelagal 寫講,「 如果你當咧為啥物 Android 開發走揣一種替代程式語言,按呢應該試落來矣 Kotlin。伊蓋容易佇咧 Android 專案中替代 Java 或者是仝 Java 做伙使用。」 ==歷史== 二空一一年七月,JetBrains 推出 Kotlin 專案,這是一个面向 JVM 的新語言,伊已經予人開發一年之久。JetBrains 負責人 Dmitry Jemerov 講,大多數的語言無𪜶當咧走揣的特性,猶毋過 Scala 除外。猶毋過,伊指出 Scala 的編譯時間過慢這一明顯欠點。Kotlin 既定目標之一是像 Java 仝款快速編譯。二空一二年二月,JetBrains 以 Apache 二許可證開源此專案。 JetBrains 希望這个新的語言會當推動 IntelliJ IDEA 的銷售。 Kotlin v 一鋪排佇二空一六年二月十五號發布。這予人認為是第一个官方穩定版本,並且 JetBrains 已經準備對該版本開始的長期向下相容性。 佇咧 Google I / O 二千空一十七中,Google 宣布佇 Android 上為 Kotlin 提供最佳支援。 ==語法== Kotlin 真明顯受著 Java、C #、JavaScript、Scala、Groovy 等語言的這个影響。比如講 Kotlin 會當直接通過 ` println ( " Hello , $ { name } " ) ` 抑是 ` println ( " Hello , $ name " ) ` 來使用字串模仔,佮遮的古早的 shell script 類似。猶閣如 Kotlin 你中的分號是會當選的,這類似 JavaScript,而且 Groovy、Scala 嘛有仝款的能力。Kotlin 常數定義關鍵字是 ` val `(無仝款變數定義關鍵字 ` var `), 表示固定值,這功能來自 Scala,Swift 嘛有類似功能。 需要注意,Kotlin 無關鍵字 ` new `。 ===變數=== 使用 ` val `(全稱做 value,即(固定的)值)關鍵字定義唯讀變數,定義了後其值無法度修改使用 ` var `(全稱做 variable,即變數)關鍵字定義會當變數。 ===函式=== 使用 ` fun ` 關鍵字定義一个函式。 上例定義一个傳來到兩个 Int 變數,並且倒轉來兩數之佮的求和函式。 ===程式的入口點=== 類似 C、C + +、C #、Java 和 Go,Kotlin 程式的入口點是一个名為「main」的函式。main 函式有一个包含命令列選項的參數(對 Kotlin 一爿三開始是可選的)。 Kotlin 支援親像 Perl 和 Unix shell 彼字串模仔。類型推斷嘛是支援的。 ===函式擴充=== Kotlin 佮 C #、JavaScript 類似,會當擴充類別的新功能,煞無需要繼承這个類別,抑是使用像裝飾器(decorator)這款的任何類型的設計模式(design pattern)。 擴充函式會當講是 Kotlin 的核心,佇標準庫里滿四界坉著擴充函式。 擴充函式是靜態分發的,也就是講,𪜶毋是以接收者類型做準的虛擬函式。踮咧呼的擴充函式是由函式呼叫所在的表達式的類型來決定的,毋是由表達式來執行時求值結果決定的。 佇後述例中,String 類別予人擴充出一个成員 lastChar。 利用函式擴充,Kotlin 嘛支援運算子加載: ===getter 和 setter=== Kotlin 像 C # 仝款支援屬性(property)。 ===解包引數=== 類似 Python , 解包(unpack)講的是對實際參數的解包,干焦需要佇頭前加一个星號 \ * 即可,如 test(\ * a): ===函式岫狀=== Kotlin 支援函式岫狀(nested functions), 允准函式內才定義函式,類似 JavaScript、C # 佮 Python 語言。 ===解構聲明=== Kotlin 支援解構聲明,這佮 Python 迵天解包相𫝛。 比如講,collection object 包括解構式會當分離其元素 : ===抽象類別=== 抽象類別(Abstract classes)定義抽象或者是純虛擬(Pure Virtual)占位函式,需要予人繼承。抽象類別預設是 open 的。 ===類別屬性=== Kotlin 提供下列的關鍵字來限制頂層(top-level)聲明,用佇咧控制類別佮成員佇咧繼承的時陣可見性(作用域)。 𪜶可用佇類別及其成員 : 用佇類別的成員聲明的時陣,含義如下: * public:全域可見。為著預設的類型。 * internal:佇咧當前模組中可見。 * protected:佇咧做前類別的一級子類別中可見,若是子類莫閣予人繼承,是佇後一級子類別中不可見。 * private:佇咧做前類別中可見。 用佇頂層聲明時,含義如下: * public:全域可見。為著預設的類型。 * internal:佇咧當前模組中可見。 * private:佇當前檔案中可見。 比如講 : ===主建構函式 vs . 二級建構函式=== 佇咧 Kotlin 中類別會當有一个主建構函式和多個二級建構函式。若主建構函式無註解抑是可見性說明,著 ` constructor ` 關鍵字會當省略。若建構函式當中無其他的操作,大量的括號嘛會當省略。 Kotlin 的二級建構函式閣較類似 C + + , C # , 和 Java。 ===Anko library=== Anko 是一組為 Kotlin 打造的函式庫,其實伊功能是用來開發的 Android UI 應用程式,現已經棄用。 ===Kotlin 互動模式=== Kotlin 除了編譯做 Java 位元組碼執行,嘛會當做手稿的語言解說執行,此特性使得 Kotlin 會當互動模式執行。互動模式是手稿語言有的特性,直譯器會當即時執行使用者輸入的代碼,並回饋執行結果。典型的語言有 Python、JavaScript(佇咧 V 八 ia̋n-jín 支援下)、 Ruby。 ===Kotlin 也是手稿語言=== Kotlin 抑是會當看做手稿的語言(scripting language)。 其實指令碼存成 Kotlin source file ( . kts ),就成做可執行檔。 為著執行 Kotlin 指令碼,阮咧執行編譯器的時陣才閣加上-script 選項。 ===Kotlin 的 hello world 例=== ===空變數佮其運算=== Kotlin 嘿會當為空(nullable)的變數佮袂當為空(non-nullable)的變數作了區分。所有的可空物件(nullable objects)著愛佇定義的時陣加上 " ? " 等於是類型了後。開發人員搪著 nullable objects 時愛先確認 : null-check 愛予執行過,才有通好價值。可空性是 Kotlin 型別系統中幫助開發者避免以往 Java 的 NullPointerException 錯誤的特性。 Kotlin 提供空安全(null-safe)運算子予開發人員 : * ? . ( Safe navigation operator ) 可用佇咧安全取(safely access)可能是空物件的函式抑是屬性。若是 object 為空(null), 該方法將無被呼叫,而且表達式的值一定為空(null)。 * ? : ( Null coalescing operator ) 通常叫做艾維斯運算子呢(Elvis operator): 使用安全導引(safe navigation)運算子 : ===高階函式和 lambda=== Kotlin 亦支援高階函式佮 lambdas 功能。lambda 是一種匿名函式,允准開發者直接將表達式定義做函式,這類似 Python。 Lambdas 會當用大括弧 { } 來定義。若是 lambda 含參數,𪜶會當定義佇大括弧內,並以-> 運算子區隔。 ==參考資料== ==外部連結== * 官方網站 * 官方範例 * 官方網站-中文翻譯 * Kotlin 教學 [[分類: 待校正]]
返回到「
Kotlin
」。