Kotlin 與 Swift 語法對照:跨平台開發者 (2025年)

Kotlin 與 Swift 語法對照表(2025 年版) 在行動應用開發中, Kotlin 與 Swift 分別是 Android 與 iOS 的主流語言。雖然語法有些差異,但其實它們有很多相似之處。本文整理了常用的語法對照表,方便跨平台開發者快速上手。 1. 變數宣告 // Kotlin val name: String = "Alice" // 常數 var age: Int = 25 // 可變數 // Swift let name: String = "Alice" // 常數 var age: Int = 25 // 可變數 2. 條件判斷 // Kotlin if (age >= 18) { println("Adult") } else { println("Minor") } // Swift if age >= 18 { print("Adult") } else { print("Minor") } 3. 函式定義 // Kotlin fun greet(name: String): String { return "Hello, $name!" } // Swift func greet(_ name: String) -> String { return "Hello, \(name)!" } 4. 陣列與迴圈 // Kotlin val fruits = listOf("Apple", "Banana", "Cherry") for (fruit in fruits) { println(fruit) } // Swift let fruits = ["Apple", "Banana", "Cherry"] for fruit in fruits { print(f...

[Java] substring 的參數: beginIndex 和 endIndex 的理解

在 Java 的某些方法中,我們會注意到參數會需要代入頭尾的 index

舉例來說

String類別的 substring 方法,可以回傳某字串的子字串
其中一種多載(Overloading)形式是帶有參數 int beginIndex
會回傳以該index為首,直到字串尾的子字串

EX:
S1 = "abcdef";
S2 = S1.substring(2);
S2 = "cdef"

另一種多載形式帶有兩個參數,int beginIndex 和 int endIndex
按前面的理解就是包含以 beginIndex 為首,endIndex 為尾的子字串
但事實並非如此

S2 = S1.substring(2, 5);
S2 = "cde"

這裡的 endIndex 不包含在 substring
也就是範圍 (2, 5) 是2, 3, 4,不包含 5,子字串長度為 3
所以實際上 substring(int beginIndex,  int endIndex)指的是

回傳原字串 從 beginIndex 到 endIndex-1 索引範圍的子字串

為什麼要這樣定義呢?

你可能會發現,此字串的長度可以透過 endIndex - beginIndex 而得
此外,以下式子也成立
substring(a, c) = substring(a, b) + substring(b, c)  (a < b < c)

再者,字串的 index 是從 0 ~ n-1 (假設字串長度為 n )
因此,我們也可以用這個範圍的子字串代表原字串:
即  s = s.substring(0, n-1)

---------------------------------------------------------
另外一個例子是 Arrays 類別的 fill 方法
可以將一維陣列中特定數量(部分或全部)的元素設定成新的相同數值
針對不同資料型別的陣列也有不同多載形式
以 int 為例
fill(int[] a, int fromIndex, int toIndex, int val)
參數:
a[] 一維陣列
fromIndex, toIndex 要更動的範圍
val 新的數值

arr[] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10};
Arrays.fill(arr, 2, 5, 0);

新陣列
arr = {1, 2, 0, 0, 0, 6, 7, 8, 9, 10};
index 2 ~ (5-1) 範圍的值改為 0

p.s.
fill方法也有只包含 int[]a 與 int val 參數的形式
就是將陣列的所有內容都以 val 取代

實作範例:

留言

這個網誌中的熱門文章

【Ubuntu】Terminal 複製貼上的方法 Copy & Paste

【Ubuntu】關閉預設畫面自動鎖定

[Java] HashMap資料結構簡介與用法