Skip to main content

函數與變數

介紹

Wave 程式語言的核心設計哲學是在 低層次效能 與 高層次抽象 之間取得平衡,為軟體開發提供高效且靈活的環境。 本節將介紹 Wave 程式的基本組成要素:函數 和 變數,它們是構建邏輯與管理數據的關鍵。 理解如何定義與操作函數和變數,將能幫助您充分發揮 Wave 的潛力。


函數

在 Wave 中,函數是可以獨立執行的 可重複使用的代碼塊。 函數能封裝特定操作,並可在整個程式中按需調用,實現計算、處理 I/O 操作,或將代碼分為更易於管理的模組。

Wave 中的函數結構以 fun 關鍵字開頭,包括函數名稱、參數(如有),以及用 {} 包裹的函數主體。

定義函數

以下是定義基本函數的方式:

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 透過將變數區分為可變與不可變,提供了更好的數據一致性與程式狀態管理能力。 這能幫助開發者撰寫更穩健且可預測的代碼。