JetBrains 釋出Kotlin 1.0
在Beta 之後僅僅幾個月,JetBrains 正式宣佈Kotlin 的第一個穩定版本,其基於JVM 併相容Android的新語言。製造商表示,Kotlin 打算作為一個“好工具”,目的是為了驅動設計決策向實用性和互操作性前進。Kotlin 希望解決Java 中只能通過類庫和外部工具來修復的許多問題,同時提供平滑和漸進的過渡機會。
\\在2010年的初步設想中,JetBrains 決定建立Kotlin ,以此來提高開發他們自己的產品時(Kotlin 現在被使用在JetBrains 的產品中,比如IntelliJ IDEA)的生產效率。考慮到許多其他使用者將不得不面對同樣的問題,JetBrains 決定開源Kotlin,並且鼓勵參與和貢獻。因為它基於Java 1.6,Kotlin 很快在Android 開發者中流行起來,為他們提供了獲取一系列其他版本和語言所擁有的流行特性。事實上流行的證據就是新的Android 開發工具,比如JRebel for Android,包含了對Kotlin 的支援。
\\雖然Kotlin 在Android 開發中超越Java 的優勢會在Android 完成遷移到OpenJDK 之後減弱,但是開發者能夠在一些其他的領域獲得益處。其中包括:
\\- Getter/Setter 引用:Java 中寫程式碼來訪問屬性,典型的操作是通過IDE 輔助的程式碼生成、像Project Lombok 這樣的位元組碼操作,或者是簡單的將內部屬性公開(這違背了封裝的原則)。在Kotlin 中,資料類的建立預設為所有的屬性提供了getter 和setter。 \\
- toString、hashCode、equals:Java 為這三個方法提供預設實現,但是這些很少有用處,這意味著開發者通常必須重寫預設方法並建立他們自己的。很多情況下,所需要的實現是足夠簡單的,以便於通過一些類庫,比如Apache Commons Lang 和Google Guava 來提供。Kotlin 的資料類基於類的欄位為這些方法提供了一個預設實現,類似於大部分開發者所需要的,這意味著不需要去重寫這些方法。此外,Kotlin 的“==”操作符不是比較引用,而是和equals 方法一樣。 \\
- 物件的部分構建:在很多時候,一個物件需要在只有部分引數被提供,同時其他引數保持預設值的情況下被構建。這通常通過建造者模式來完成,它建立一個建造者類和目標類來建立需要的物件。Kotlin 通過支援命名引數來解決這個問題。 \\
- 空值檢查:對Java 開發者來說,避免空值是一個普遍頭疼的問題,通常通過IDE檢查(檢測值一直為空)、類裡面的斷言(Objects.requireNotNull())、類似@NotNull 或者@NonNull 這樣的註解的隱含驗證、Google 的Optional,或者之後的Java 8的Optional來解決。在Kotlin 中,空值的概念已經被轉移到語言自身,這意味著變數在編譯時就知道它們自己是否為空: \
val x: String? = \"Hi\" // Declaring x as a nullable String\x.length // Does not compile, x could be null, null check needs to happen first\\if (x != null) {\ x.length // Compiles, Kotlin understands that x is not null by this point\}\\val y: String = null // Does not compile, y is not declared as nullable\\
- 字串構建:在Java 中,我們可以通過使用連線運算子(\"a \" + 變數 + \" b\"),String.format() 方法能提供更好的可讀性(String.format(\"a %s b\
相關文章
- Ktor 1.0 正式釋出:JetBrains 出品的互聯應用框架AI框架
- Kotlin 1.3 正式釋出:Coroutine 『畢業』、Kotlin/Native 達成 1.0 Beta 等Kotlin
- 慶祝 Ktor 1.0 釋出,分享 JetBrains 日講稿及程式碼AI
- AsteroidOS 1.0 釋出AST
- Kotlin 1.2.70 釋出Kotlin
- Kotlin 1.4.20釋出!Kotlin
- UMind1.0釋出
- Kotlin 1.3.30 正式釋出Kotlin
- Kotlin 1.3.70正式釋出Kotlin
- Kotlin 1.3.40正式釋出Kotlin
- Kotlin 1.3.20正式釋出Kotlin
- Gradle Kotlin DSL 1.0GradleKotlin
- 正式釋出Android Things 1.0Android
- 迎元旦,慶surging 1.0釋出
- Flutter Live 2018 Flutter 1.0 釋出Flutter
- Kotlin 1.3正式版釋出Kotlin
- Kotlin 1.3.50正式版釋出Kotlin
- Kotlin 1.3.60正式版釋出Kotlin
- surging 微服務引擎 1.0 正式釋出微服務
- imi-admin V1.0釋出
- Kotlin 1.4-M2正式釋出Kotlin
- Kotlin 1.4-M1正式釋出Kotlin
- runc 1.0-rc6 釋出之際
- runc 1.0-rc7 釋出之際
- 谷歌Flutter1.0正式版釋出谷歌Flutter
- JetBrains 中國巡演, Kotlin 開發專場AIKotlin
- 使用 Kotlin Symbol Processing 1.0 縮短 Kotlin 構建時間KotlinSymbol
- Kotlin 2版本即將釋出Kotlin
- Flutter http請求庫dio 1.0正式釋出FlutterHTTP
- NG-ZORRO(Ant Design + Angular) 1.0 版本釋出Angular
- 重磅!滴滴跨端框架Chameleon 1.0正式釋出跨端框架Chameleon
- PHP框架Raxan1.0最終版釋出PHP框架
- Kotlin 1.5.0-M2 釋出:確保順利遷移到 Kotlin 1.5.0Kotlin
- EsParser 1.0 釋出:潛心之作,完全開箱即用
- 多端統一開發框架 Taro 1.0 正式釋出框架
- Wizard 開源文件管理系統1.0釋出啦
- MOSN 1.0 釋出,開啟新架構演進架構
- Language Server for Java™ 1.0 在VS Code上正式釋出!ServerJava
- KunlunBase 1.0 釋出了!