学习 Rust 的同学,大概都有其他语言的背景。仔细分辨与已有知识的差别,或有助于更好地理解Rust。以下是把 C 语言与 Rust 作一初步对比,以见出其中差别。
1.变量声明:
C语言使用int
、float
等关键字来声明变量的类型,而Rust则使用类型推断,无需显式声明变量类型。
- 示例(C语言):
int x = 5;
float y = 3.14;
- 示例(Rust):
let x = 5;
let y = 3.14;
2.函数定义
C语言使用return
关键字返回函数结果,而Rust则使用隐式返回值。
- 示例(C语言):
int add(int a, int b) {
return a + b;
}
- 示例(Rust):
fn add(a: i32, b: i32) -> i32 {
a + b
}
3.内存管理:
C语言需要手动分配和释放内存,而Rust通过所有权系统自动管理内存。
- 示例(C语言):
int* create_array(int size) {
int* arr = malloc(size * sizeof(int));
return arr;
}
- 示例(Rust):
fn create_array(size: usize) -> Vec {
vec![0; size]
}
4.错误处理
C语言通常使用返回值和全局变量来表示错误状态,而Rust使用Result枚举、Option枚举进行错误处理。
- 示例(C语言):
int divide(int a, int b) {
if (b == 0) {
return -1服务器托管网; // 错误状态
}
return a / b;
}
- 示例(Rust):
fn divide(a: i32, b: i32) -> Resulti32, &'static str> {
if b == 0 {
Err("Division by zero")
} else {
Ok(a / b)
}
}
5.循环语句
for循环:C语言使用for
关键字进行循环,可以指定初始值、条件和增量。Rust也使用for
关键字进行循环,但语法略有不同,通常用于迭代集合或范围。
- 示例(C语言):
for (int i = 0; i 5; i++) {
printf("%服务器托管网dn", i);
}
- 示例(Rust):
for i in 0..5 {
println!("{}", i);
}
while循环:C语言使用while
关键字进行循环,只要条件为真就会继续执行循环体。Rust也使用while
关键字进行循环,与C语言的用法相同。
- 示例(C语言):
int i = 0;
while (i 5) {
printf("%dn", i);
i++;
}
- 示例(Rust):
let mut i = 0;
while i 5 {
println!("{}", i);
i += 1;
}
注意:Rust 语言的 for、while 循环语句中的条件语句不用加括号。
do-while循环:C语言使用do-while
循环,先执行循环体,然后检查条件是否为真。Rust没有内置的do-while
循环,但可以通过其他方式实现类似的效果。
- 示例(C语言):
int i = 0;
do {
printf("%dn", i);
i++;
} while (i 5);
- 示例(Rust):
let mut i = 0;
loop {
println!("{}", i);
i += 1;
if i >= 5 {
break;
}
}
服务器托管,北京服务器托管,服务器租用 http://www.fwqtg.net
音调与频域 此章中如果对音乐部分不感兴趣,可忽略 代码部分也没有更多的新 api ,重要的还是相关的物理与声音的相关知识 到目前为止我们已经学过了声音的基础属性:定时与音量。为了能处理更复杂的的情况,例如声音的均衡(比如,增加低音和降低高音),我们需要更复杂的…