您的位置:首页 > 文旅 > 美景 > 北京市企业信用信息查询网_青岛房产备案价格查询官网_合肥360seo排名_app怎么开发出来的

北京市企业信用信息查询网_青岛房产备案价格查询官网_合肥360seo排名_app怎么开发出来的

2024/10/12 1:02:59 来源:https://blog.csdn.net/brucexia/article/details/142823335  浏览:    关键词:北京市企业信用信息查询网_青岛房产备案价格查询官网_合肥360seo排名_app怎么开发出来的
北京市企业信用信息查询网_青岛房产备案价格查询官网_合肥360seo排名_app怎么开发出来的

【图书介绍】《Rust编程与项目实战》-CSDN博客

《Rust编程与项目实战》(朱文伟,李建英)【摘要 书评 试读】- 京东图书 (jd.com)

Rust编程与项目实战_夏天又到了的博客-CSDN博客

7.1  函 数 定 义

在Rust中,函数使用fn关键字定义,后跟函数名、参数列表、返回类型和函数体。函数体由一系列语句组成,用于执行特定的操作和计算。以下是一个简单的函数示例:

fn greet() {println!("Hello, Rust!");
}
fn main() {greet();
}

上述示例中,我们定义了一个名为greet的函数,它不接收任何参数,也没有返回值。函数体中的语句println!("Hello, Rust!")用于打印一条问候信息。在main函数中,我们调用了greet函数,通过函数名后加上圆括号“()”来调用函数。

7.2  函 数 参 数

函数可以接收参数,参数是函数的输入数据,用于在函数体中进行处理和操作。在Rust中,函数的参数由参数名和类型组成,并通过逗号分隔。以下是一个带有参数的函数示例:

fn greet(name: &str) {println!("Hello, {}!", name);
}fn main() {let name = "Alice";greet(name);
}

在上述示例中,我们定义了一个名为greet的函数,它接收一个类型为&str的参数name。参数类型&str表示一个字符串切片,它是对字符串的引用。

在main函数中,我们定义了一个名为name的变量,并将其赋值为"Alice"。然后,我们将name作为参数传递给greet函数,以打印问候信息。

7.3  函数返回值

函数可以返回一个值,返回值是函数的输出结果,用于提供函数执行后的结果或计算的值。在Rust中,函数的返回类型由->符号后跟类型来指定。以下是一个带有返回值的函数示例:

fn add(a: i32, b: i32) -> i32 {a + b
}fn main() {let result = add(3, 5);println!("Result: {}", result);
}

在上述示例中,我们定义了一个名为add的函数,它接收两个参数a和b,类型均为i32。函数体中的表达式a + b表示将参数a和b相加,并作为函数的返回值。

在main函数中,我们调用了add函数,并将返回值存储在result变量中。然后,使用println!宏打印出结果。结果输出:Result: 8。

7.4  函 数 重 载

Rust不支持传统意义上的函数重载,即在同一作用域中定义多个同名函数但参数类型或数量不同的情况。然而,Rust通过使用泛型和trait来实现类似的功能。以下是一个使用泛型和trait实现函数重载的示例:

trait Add {type Output;fn add(self, other: Self) -> Self::Output;
}impl Add for i32 {type Output = i32;fn add(self, other: Self) -> Self::Output {self + other}
}impl Add for f64 {type Output = f64;fn add(self, other: Self) -> Self::Output {self + other}
}fn main() {let a = 3;let b = 5;let c = 2.5;let d = 4.8;let result1 = a.add(b);let result2 = c.add(d);println!("Result 1: {}", result1);println!("Result 2: {}", result2);
}

    println!("Result 1: {}", result1);

    println!("Result 2: {}", result2);

}

在上述示例中,我们定义了一个名为Add的trait,它具有一个关联类型Output和一个add方法。然后,为i32和f64类型分别实现了Add trait,为它们提供了不同的实现方式。

在main函数中,我们分别定义了a、b、c和d四个变量,并使用add方法对它们进行相加操作。根据变量的类型,编译器会自动选择正确的实现方式。运行结果如下:

Result 1: 8
Result 2: 7.3

7.5  函数作为参数和返回值

在Rust中,函数可以作为参数传递给其他函数,也可以作为函数的返回值。这种特性可以实现函数的灵活组合和高阶函数的编写。以下是一个函数作为参数和返回值的示例:

fn add(a: i32, b: i32) -> i32 {a + b
}fn subtract(a: i32, b: i32) -> i32 {a - b
}fn calculate(op: fn(i32, i32) -> i32, a: i32, b: i32) -> i32 {op(a, b)
}fn main() {let result1 = calculate(add, 3, 5);let result2 = calculate(subtract, 8, 4);println!("Result 1: {}", result1);println!("Result 2: {}", result2);
}

在上述示例中,我们定义了两个简单的函数add和subtract,分别用于相加和相减操作。

然后,我们定义了一个名为calculate的函数,它接收一个函数参数op,类型为fn(i32, i32) -> i32,表示接收两个i32类型的参数并返回i32类型结果。在函数体中,我们调用了op函数,并传递了a和b作为参数。

在main函数中,我们分别使用add和subtract作为calculate函数的参数,并打印出计算结果。运行结果如下:

Result 1: 8
Result 2: 4