跳至主要内容

函數與變數

介紹

Wave 程式語言的核心設計哲學是實現低階性能與高階抽象之間的平衡,為軟體開發提供高效且靈活的環境。 本節將介紹 Wave 程式的基本組成元素,即函數與變數。這些元素對於在程式內組織邏輯與管理資料至關重要。 了解如何定義與處理函數和變數,能幫助您充分發揮 Wave 的潛力。


函數

在 Wave 中,函數扮演著 可重用的程式區塊 角色,能獨立執行。 函數封裝了特定的操作,並可以在程式中隨時調用。 這使得進行計算、管理 I/O 操作或將程式碼分割成更易管理的單位成為可能。

在 Wave 中,函數的簽名由 fun 關鍵字開始,並由函數名稱、(如有)參數以及用大括號 {} 包裹的函數本體組成。

定義函數

在 Wave 中,基本的函數定義如下:

fun main() {
// 在這裡寫入程式碼
}
  • main 函數是程式執行的入口點,總是需要存在。
  • 函數可以有參數,並且可以返回值。返回的類型在函數名稱後面指定。

範例:簡單函數

fun add(a :i32, b :i32) -> i32 {
return a + b;
}

fun main() {
var result = add(5, 7); // 調用 add 函數
println(result); // 輸出: 12
}

在上述範例中:

  • add 函數接受兩個整數 ab,並返回它們的和。
  • main 函數調用 add 並輸出結果。

變數

變數用於在程式中存儲和操作資料。 Wave 支援在變數宣告時使用 可變變數 和 不可變變數,從而提供了對資料管理的開發者控制權。

可變變數

在 Wave 中,變數默認是 可變的(mutable),即在程式執行期間可以改變其值。

可變變數使用 var 關鍵字來宣告。

var x :i32 = 10; // 可變變數
x = 20;

在這個範例中:

  • x 是一個可變變數,初值為 10,並且可以在後續變更為 20

不可變變數

如果將變數宣告為 不可變(immutable),則在賦值後不能更改其值。

不可變變數使用 var imm 關鍵字來宣告。

var imm y :i32 = 5;     // 不可變變數
// y = 10; // 錯誤: 不可變變數的值無法更改

在這裡:

  • y 是不可變變數,若嘗試更改其值,將會產生編譯錯誤。

變數宣告範例

以下是不同類型的可變和不可變變數宣告範例:

var x :i32 = 10;                    // 可變整數變數
var imm y :f64 = 3.14159; // 不可變浮點數變數
var name :str = "Wave"; // 可變字串變數
var imm is_active :bool = true; // 不可變布林變數
  • x 是可變整數。
  • y 是不可變浮點數。
  • name 是可變字串。
  • is_active 是不可變布林值。

在 Wave 中,我們使用 var 關鍵字來宣告可變變數,而使用 var imm 關鍵字來宣告初始化後不能更改的不可變變數。

透過區分可變變數和不可變變數,Wave 能夠更有效地控制資料一致性與程式狀態,幫助開發者編寫更健壯且可預測的程式碼。