如何做到高級Kotlin強化實戰?(二)

高級Kotlin強化實戰(二)

        • 2.Kotlin 與 Java 比較


2.Kotlin 與 Java 比較

2.5 字符串拼接

//Java
String firstName = "Android";
String lastName = "enginner";
String message = "My name is: " + firstName + " " + lastName;
//Kotlin
val firstName = "Android"
val lastName = "enginner"
val message = "My name is: $firstName $lastName"

2.6 三元表達式

//Java
String text = x > 5 ? "x > 5" : "x <= 5";
//kotlin
val text = if (x > 5)
"x > 5"
else
"x <= 5"

2.7 多重條件

//Java
if (score >= 0 && score <= 300) { }
//kotlin
if (score in 0..300) { }

2.8 更靈活的 case 語句

//Java
int score = // some score;
String grade;
switch (score) {
case 10:
case 9:
grade = "Excellent";
break;
case 8:
case 7:
case 6:
grade = "Good";
break;
case 5:
case 4:
grade = "OK";
break;
case 3:
case 2:
case 1:
grade = "Fail";
break;
default:
grade = "Fail";
}
//kotlin
var score = // some score
var grade = when (score) {
9, 10 -> "Excellent"
in 6..8 -> "Good"
4, 5 -> "OK"
in 1..3 -> "Fail"
else -> "Fail"
}

2.9 for 循環

//Java
for (int i = 1; i <= 10 ; i++) { }
for (int i = 1; i < 10 ; i++) { }
for (int i = 10; i >= 0 ; i--) { }
for (int i = 1; i <= 10 ; i+=2) { }
for (int i = 10; i >= 0 ; i-=2) { }
for (String item : collection) { }
for (Map.Entry<String, String> entry: map.entrySet()) { }
//kotlin
for (i in 1..10) { }
for (i in 1 until 10) { }
for (i in 10 downTo 0) { }
for (i in 1..10 step 2) { }
for (i in 10 downTo 0 step 2) { }
for (item in collection) { }
for ((key, value) in map) { }

2.10 更方便的集合操作

//Java
final List<Integer> listOfNumber = Arrays.asList(1, 2, 3, 4);
final Map<Integer, String> keyValue = new HashMap<Integer, String>();
map.put(1, "Android");
map.put(2, "Ali");
map.put(3, "Mindorks");
// Java 9
final List<Integer> listOfNumber = List.of(1, 2, 3, 4);
final Map<Integer, String> keyValue = Map.of(1, "Android",
2, "Ali",
3, "Mindorks");
//kotlin
val listOfNumber = listOf(1, 2, 3, 4)
val keyValue = mapOf(1 to "Android",
2 to "Ali",
3 to "Mindorks")

2.11 遍歷

// Java 7 and below
for (Car car : cars) {
System.out.println(car.speed);
}
// Java 8+
cars.forEach(car -> System.out.println(car.speed));
// Java 7 and below
for (Car car : cars) {
if (car.speed > 100) {
System.out.println(car.speed);
}
}
// Java 8+
cars.stream().filter(car -> car.speed > 100).forEach(car -> System.out.println(car.speed));
//kotlin
cars.forEach {
println(it.speed)
}
cars.filter { it.speed > 100 }
.forEach { println(it.speed)}

2.12 方法定義

//Java
void doSomething() {
// logic here
}
void doSomething(int... numbers) {
// logic here
}
復制
//kotlin
fun doSomething() {
// logic here
}
fun doSomething(vararg numbers: Int) {
// logic here
}

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/web/40725.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/40725.shtml
英文地址,請注明出處:http://en.pswp.cn/web/40725.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

Web美食分享平臺的系統-計算機畢業設計源碼45429

基于Web美食分享平臺的系統設計與實現 摘 要 本研究基于Spring Boot框架&#xff0c;設計并實現了一個Web美食分享平臺&#xff0c;旨在為用戶提供一個交流分享美食體驗的社區平臺。該平臺涵蓋了用戶注冊登錄、美食制作方法分享發布、點贊評論互動等功能模塊&#xff0c;致力于…

3D Web輕量化平臺HOOPS Web Platform的功能與應用分析

隨著3D技術在多個行業的廣泛應用&#xff0c;對于3D模型輕量化的需求日益增長。HOOPS Web Platform作為一個先進的3D模型輕量化平臺&#xff0c;為開發人員提供了一整套工具來構建和部署基于Web的工程應用程序。本文將分析HOOPS Web Platform的核心功能和它在不同領域的應用情況…

軟件工程學面向對象

一、面向對象方法學概述 傳統的生命周期方法學在消除軟件非結構化、促進軟件開發工程化方面起了積極的作用&#xff0c;但仍有許多不足&#xff0c;存在的主要問題有&#xff1a;①生產率提高的幅度不能滿足需要&#xff1b; ②軟件重用程度很低&#xff1b; ③軟件很難維護&a…

MySQL中的MVCC解析

MySQL中的MVCC解析 多版本并發控制是MySQL中實現高并發的一種關鍵技術。通過對數據進行多版本的管理&#xff0c;MVCC能夠在保證數據一致性的同時&#xff0c;提高數據庫的并發性能。本文將深入探討MySQL中的MVCC機制&#xff0c;包括其原理、實現方式以及優勢。 MVCC的原理 …

華為機試HJ22汽水瓶

華為機試HJ22汽水瓶 題目&#xff1a; 某商店規定&#xff1a;三個空汽水瓶可以換一瓶汽水&#xff0c;允許向老板借空汽水瓶&#xff08;但是必須要歸還&#xff09;。 小張手上有n個空汽水瓶&#xff0c;她想知道自己最多可以喝到多少瓶汽水。 想法&#xff1a; 因為可以…

硬件開發工具Arduino IDE

招聘信息共享社群 關聯上篇文章樂鑫ESPRESSIF芯片開發簡介 Arduino IDE&#xff08;集成開發環境&#xff09;是為Arduino硬件開發而設計的一款軟件&#xff0c;它提供了一個易于使用的圖形界面&#xff0c;允許用戶編寫、編輯、編譯和上傳代碼到Arduino開發板。Arduino IDE的…

深入分析 Android BroadcastReceiver (八)

文章目錄 深入分析 Android BroadcastReceiver (八)1. 系統與自定義實現1.1 系統廣播機制1.1.1 系統廣播的實現原理1.1.2 系統廣播的源碼分析 1.2 自定義廣播機制1.2.1 自定義廣播的實現步驟1.2.2 自定義廣播的源碼分析 2. 廣播機制設計的初衷與優勢2.1 設計初衷2.2 優勢 3. 總…

有了提示詞框架的雞,你就能讓AI下提示詞的蛋~

我們在問AI問題的時候&#xff0c;是不是經常感覺AI的回答沒有別人的那么好&#xff1f; 難道別人的AI更加聰明&#xff1f; 很可能是因為我們的提示詞沒寫好&#xff0c;那么&#xff0c;寫出好的提示詞很難嗎&#xff1f; 一點都不難&#xff0c;其實這都是有套路的&#…

Hive排序字段解析

Hive排序字段解析 在Hive中&#xff0c;CLUSTER BY、DISTRIBUTE BY、SORT BY和ORDER BY是用于數據分發和排序的關鍵子句&#xff0c;它們各自有不同的用途和性能特點。讓我們逐一解析這些子句&#xff1a; 1. DISTRIBUTE BY 用途: 主要用于控制如何將數據分發到Reducer。它可…

NSSCTF-Web題目24(RCE-空格繞過、過濾繞過)

目錄 [MoeCTF 2021]babyRCE 1、題目 2、知識點 3、思路 [SWPUCTF 2022 新生賽]funny_web 4、題目 5、知識點 6、思路 [MoeCTF 2021]babyRCE 1、題目 2、知識點 空格繞過、過濾繞過 3、思路 出現源碼&#xff0c;進行代碼審計 需要我們GET方式上傳一個rce變量&#x…

解碼注意力機制:自注意力與跨注意力的奧秘

標題&#xff1a;解碼注意力機制&#xff1a;自注意力與跨注意力的奧秘 自注意力&#xff08;Self-Attention&#xff09;和跨注意力&#xff08;Cross-Attention&#xff09;是深度學習中的重要概念&#xff0c;尤其在自然語言處理&#xff08;NLP&#xff09;領域的Transfor…

[FreeRTOS 功能應用] 互斥量 功能應用

文章目錄 一、基礎知識點二、代碼講解三、結果演示四、代碼下載 一、基礎知識點 [FreeRTOS 基礎知識] 互斥量 概念 [FreeRTOS 內部實現] 互斥量 本實驗是基于STM32F103開發移植FreeRTOS實時操作系統&#xff0c;互斥量實戰操作。 使用工具&#xff1a;Keil、串口工具 二、代碼…

Rust變量綁定

變量綁定 Rust 通過靜態類型確保類型安全。變量綁定可以在聲明時說明類型&#xff0c;不過在多數情況下&#xff0c;編譯器能夠從上下文推導出變量的類型&#xff0c;從而大大減少了類型說明的工作。 使用 let 綁定操作可以將值&#xff08;比如字面量&#xff09;綁定&#…

全面解析智慧校園行政辦公的協作日程功能

在智慧校園的行政辦公生態系統中&#xff0c;協作日程功能成為促進團隊互動與工作同步的橋梁&#xff0c;它超越了傳統個人日程的范疇&#xff0c;強調的是集體效率與信息的無縫對接。這一功能設計的核心&#xff0c;在于創造一個開放而有序的平臺&#xff0c;讓教育工作者們能…

2-4 Softmax 回歸的從零開始實現

就像我們從零開始實現線性回歸一樣&#xff0c; 我們認為softmax回歸也是重要的基礎&#xff0c;因此應該知道實現softmax回歸的細節。 本節我們將使用剛剛在2-3節中引入的Fashion-MNIST數據集&#xff0c; 并設置數據迭代器的批量大小為256。 import torch from IPython impo…

【chtagpt】pytorch中的方法對象和屬性

文章目錄 定義一個簡單的類屬性和方法對象的區別PyTorch 張量中的屬性和方法對象進一步解釋總結self.value value 的解釋示例解釋總結 為了更好地理解方法對象和屬性&#xff0c;我們可以通過一個簡單的類來演示這兩者的區別及其用法。 定義一個簡單的類 我們定義一個名為 My…

開發個人Go-ChatGPT--1 項目介紹

開發個人Go-ChatGPT--1 項目介紹 開發個人Go-ChatGPT--1 項目介紹知識點大綱文章目錄項目地址 開發個人Go-ChatGPT–1 項目介紹 本文將以一個使用Ollama部署的ChatGPT為背景&#xff0c;主要還是介紹和學習使用 go-zero 框架&#xff0c;開發個人Go-ChatGPT的服務器后端&#…

主從復制原理及操作

主從復制的概念 主從復制是一種在數據庫系統中常用的數據備份和讀取擴展技術&#xff0c;通過將一個數據庫服務器&#xff08;主服務器&#xff09;上的數據變更自動同步到一個或多個數據庫服務器&#xff08;從服務器&#xff09;上&#xff0c;以此來實現數據的冗余備份、讀…

解決video.js在demo中可以播放,在已有項目中無限waiting的問題

video.js的是有推薦的和react一起使用的寫法的&#xff1a;https://videojs.com/guides/react/ 但是這個寫法在demo中可以正常播放&#xff0c;在放在現有的項目中則播不出來&#xff0c;也不報錯&#xff0c;就是log里顯示on waiting后就什么動靜都沒有了&#xff0c;頁面顯示…

貝葉斯學習中先驗分布的詳細解釋

在貝葉斯學習中&#xff0c;先驗分布&#xff08;Prior Distribution&#xff09;是一個非常重要的概念。它代表了在觀察到任何數據之前&#xff0c;對未知參數的初始信念或知識。先驗分布的選擇通常基于領域知識、歷史數據或者純粹的假設。 文章目錄 先驗分布的含義先驗分布的…