跳到主要内容

函数和变量

介绍

Wave编程语言的核心设计理念是在保持低级性能和高级抽象之间的平衡的同时,提供高效且灵活的软件开发环境。 本节介绍构成Wave程序的最基本要素:函数和变量。

函数是构成程序操作和逻辑的核心单元,而变量则负责存储和管理过程中所需的数据。 准确理解函数和变量的定义和使用方法,可以更深入地利用Wave语言的结构和设计意图。


函数

在Wave中,函数是可以独立执行的可重用代码块。 可以将特定操作或计算组合为一个单位进行表示,并可以在整个程序中根据需要调用。

使用函数可以减少重复代码,并通过逻辑分离程序,提高可读性和可维护性。 此外,还用于计算处理、输入输出管理和逻辑分离等多种目的。

在Wave中,函数由关键词fun定义,包含函数名、参数列表和用花括号{}括起来的函数体。

定义函数

在Wave中最基本的函数定义格式如下。

fun main() {
// 在此处编写代码
}

main函数是程序的执行入口,Wave程序中必须存在一个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中,变量默认是可变的。 也就是说,在程序执行过程中,可以更改已声明的值。

可变变量使用关键字var声明。

var x :i32 = 10;
x = 20;

在上面的代码中,x的初始值为10,之后可以修改为20。 因此,对于需要更改状态的数据,使用可变变量。

不可变变量

将变量声明为不可变,则在初始值分配后,无法更改其值。 不可变变量使用关键词let进行声明。

let y :i32 = 5;
// y = 10; // 错误:不可变变量无法更改值。

不可变变量因为保证其值不变,有助于提高程序的稳定性和可预测性。 对于不需要更改值的常量数据,建议使用不可变变量。

在Wave中,可以通过使用let关键字和mut显式允许可变性。

let mut y :i32 = 5;
y = 10;

这种情况下,变量是用let声明的,但是通过mut关键字允许更改值。

变量声明示例

下面是声明各种类型可变和不可变变量的例子。

var x :i32 = 10;
let y :f64 = 3.14159;
var name :str = "Wave";
let is_active :bool = true;

在这个例子中,xname是可变变量,而yis_active是不可变变量。 通过在Wave中明确区分varlet,以在代码级别表明数据是否可以变更。

通过适当区分使用可变和不可变变量,可以保持数据一致性,同时编写出更稳定和可预测的程序。