2.3 KiB
2.3 KiB
Vety语言函数和模块
1. 函数定义
1.1 基本函数定义
使用func
关键字定义函数:
func add(a: i32, b: i32): i32 {
return a + b
}
// 无返回值的函数
func print_message(msg: string): void {
print(msg)
}
1.2 函数参数
函数参数必须指定类型:
func greet(name: string, age: i32): string {
return "Hello, " + name + "! You are " + age + " years old."
}
1.3 返回值
- 函数必须指定返回值类型
- 使用
return
语句返回值 - 如果函数不需要返回值,使用
void
类型
func calculate_area(width: f64, height: f64): f64 {
return width * height
}
2. 原生函数
使用native
关键字声明原生函数,这些函数由底层实现:
native func print(message: string): void
native func read_line(): string
3. 模块系统
3.1 导入模块
使用import
关键字导入其他模块:
import io // 导入标准库的io模块
import math // 导入数学模块
3.2 模块别名
可以使用as
关键字为导入的模块指定别名:
import module_name as alias_name
4. 函数调用
4.1 基本调用
let result = add(5, 3)
print("Hello, World!")
4.2 模块函数调用
let current_time = time.now() // 调用模块中的函数
let random_number = math.random(1, 100)
5. 注解
使用@
符号添加函数注解:
@deprecated
func old_function(): void {
// 已废弃的函数
}
@test
func test_feature(): void {
// 测试函数
}
6. 错误处理
函数可以抛出错误,调用者需要处理这些错误:
func divide(a: f64, b: f64): f64 {
if (b == 0) {
throw "Division by zero"
}
return a / b
}
try {
let result = divide(10.0, 0.0)
} catch(e) {
print("除法运算失败")
}
7. 最佳实践
- 函数名使用小写字母和下划线
- 函数应该只做一件事情
- 参数数量不宜过多
- 适当添加注释说明函数功能
- 处理所有可能的错误情况
// 好的函数示例
func calculate_average(numbers: array<): f64 {
if (numbers.length == 0) {
throw "Empty array"
}
let sum: f64 = 0.0
for num in numbers {
sum = sum + num
}
return sum / numbers.length
}