Rust 的功能函数

一、功能函数


Rust 可以包括一个或者多个功能函数。

Rust 必须包含一个  main 功能函数,main 功能函数是 Rust 语言执行的入口。


二、基本函数的定义


功能函数的声明使用 fn , fn 后面跟随功能函数的名称,名称后面带 () 括号 。括号后面用 { } 大括号作为功能函数的函数体。

没有输入参数和返回值的 main功能函数定义如下:


 
fn main() {
}
 


没有输入和返回值的foo 功能函数定义:

 
fn foo() {
}
 

三、单输入参数的函数定义

以下代码定义了一个带输入参数 x 的功能函数,x 的类型是32位有符号整型数。

括号中的输入参数和变量声明类似:变量后面跟一个冒号,冒号后面跟随一个约束变量的类型。


 
fn print_number(x: i32) {
    println!("x is: {}", x);
}
 


完整的调用代码:

 
fn main() {
    print_number(5);
}

fn print_number(x: i32) {
    println!("x is: {}", x);
}
 

四、多个输入参数的定义

 
fn main() {
    print_sum(5, 6);
}

fn print_sum(x: i32, y: i32) {
    println!("sum is: {}", x + y);
}
 

需要强调的是:

输入参数必须包括类型的声明!

下面是错误❌的代码

 
fn print_sum(x, y) {
    println!("sum is: {}", x + y);
}
 

五、返回值

功能函数可以在输入参数后面,用 -> 后面跟 返回类型 表示。  

 
fn add_one(x: i32) -> i32 {
    x + 1
}
 



在功能函数中,如果不用 return 明确表达返回值,那么函数中最后一行的 表达式的值将作为返回值。

也可以在函数内任何地方,使用 return 返回与声明相符的值。



Rust语言本身没有提供类似于C语言中的`kbhit()`函数,该函数用于检测键盘是否有按键被按下。不过,你可以使用第三方库来实现类似的功能。 一个常用的库是`termion`,它提供了对终端操作的支持。你可以使用`termion`库中的`async_stdin()`函数来检测键盘输入。下面是一个使用`termion`库来实现类似于`kbhit()`函数的示例: 首先,在你的Cargo.toml文件中添加`termion`依赖: ```toml [dependencies] termion = "1.5.5" ``` 然后,你可以使用以下代码来检测键盘输入: ```rust use std::io::{self, Read}; use termion::async_stdin; fn main() { // 创建异步输入流 let stdin = async_stdin(); let mut stdin = stdin.lock(); // 设置非阻塞模式 let _ = termion::input::TermRead::set_nonblocking(&mut stdin); loop { // 尝试读取单个字符 let mut buf = [0u8; 1]; if let Ok(_) = stdin.read_exact(&mut buf) { // 检测到键盘输入 println!("Key pressed: {}", buf[0]); } // 其他逻辑处理 // ... } } ``` 在上面的示例中,我们使用`async_stdin()`函数创建了一个异步输入流。然后,我们将输入流设置为非阻塞模式,以便在没有输入时不会阻塞程序。接下来,我们使用循环来持续检测键盘输入。当检测到按键被按下时,我们打印出按下的键码。 请注意,该示例仅演示了如何使用`termion`库来检测键盘输入,并不是完整的实现。你可以根据自己的需求进行扩展和适应。 希望这个示例对你有帮助!
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值