Rust函数返回不同类型的值

在Rust中,函数可以返回不同类型的值,一种常见的方法是使用枚举类型,其中枚举的不同变体可以包含不同类型的值;

示例代码

在这个示例中,定义了一个Result的枚举,其中包含三个变体,Number包含一个i32Message包含一个String,以及不带关联数据的None

get_result函数接受一个i32参数,并根据该数字是负数、正数、还是零来返回相应的Result枚举;

enum Result {
    Number(i32),
    Message(String),
    None,
}

fn get_result(num: i32) -> Result {

    if num < 0 {
        Result::Message("负数".to_string())
    }else if num > 0 {
        Result::Number(num + 100)
    }else {
        Result::None
    }
}

fn main(){
    let value = 5;
    match get_result(value) {
        Result::Message(msg) => {
            println!("{}",msg);
        },
        Result::Number(num) =>{
            println!("{}",num);
        },
        Result::None => {
            println!("None");
        }
    }
}

原创内容,如需转载,请注明出处;

本文地址: https://www.perfcode.com/p/rust-function-return-values-of-different-types.html

分类: 计算机技术
推荐阅读:
Linux系统删除目录下的所有空目录 在Linux系统下,你如果想删除某个目录下所有的空目录,那你可以通过这一条命令实现:
Linux找出目录下所有内容重复的文件(包含子目录) 在Linux系统下,如果你想找出某个目录下(包含子目录)所有内容重复的文件,你可以使用这一条命令实现:
Python reversed()函数 在 Python 中,reversed() 函数用于反转序列(例如列表、元组、字符串等)中的元素,并返回一个迭代器。可以将这个迭代器转换为列表、元组或其他类型的序列。
Python实现节点 在某些情况下,无法在连续的内存块中为数据分配内存。 因此,我们在数据元素中记录下一个数据的内存地址;此类结构称为指针。 但是在Python中,我们将它们称为节点。
C语言assert()宏:在代码中插入检查点 在C语言中,assert()函数用于在代码中插入检查点。这个函数接受一个表达式作为参数,如果表达式的值为假,那么程序会先打印错误信息(这些信息中包含程序的名称、源代码的文件名、行号、以及表达式),然后调用abort()函数来停止程序的执行。
Python enumerate()函数 在Python中,enumerate()是一个内置函数,用于将一个可迭代对象转换为一个枚举对象,该对象包含每个元素的索引和对应的值。enumerate()函数返回的是一个由元组组成的迭代器,每个元组包含两个元素,第一个元素是元素的索引,第二个元素是元素的值。