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

分类: 计算机技术
推荐阅读:
requests发送HTTP请求后返回的响应头 requests 返回的Response对象包含响应头属性 headers:
Python @classmethod装饰器 在 Python 中,@classmethod 是一个装饰器,用于将一个普通方法转换为类方法。装饰器是一种语法糖,它可以修改已有函数的行为而不修改其定义。@classmethod 装饰器通常用于在类中定义类方法。
Pyside6.QtWidgets.QWidget详细教程 QWidget从窗口系统接收鼠标、键盘和其它事件,并在屏幕上绘制自己;通常它是矩形的,拥有一个标题栏和一个空白框架;
Go语言的多返回值 Go语言革命性地在静态开发语言阵营中率先提供了多返回值功能。这个特性让开发者可以从原来用各种比较别扭的方式返回多个值的痛苦中解脱出来,既不用再区分参数列表中哪几个用于输入,哪几个用于输出,也不用再只为了返回多个值而专门定义一个数据结构。
Python this模块的加密原理 this模块的代码(this模块位于Python安装目录/lib下)。定义了2个变量;字符串s和字典d(被定义两次);s很明显是一段密文,d则是密码字典,key和value对应的是密文和原文;chr((i&#43;13)%26 &#43;c) 则是加密算法,其原理是通过向字典d写入KEY为字符A~Z,VALUE为加密后的字符。然后通过字典遍历的方法,匹配出正确的字符。
Rust toml::Table详细用法 在Rust中,toml::Table是一个代表TOML表(table)的结构体,可以使用它来访问和操作TOML格式的数据。toml::Table结构体可以看作是一个HashMap,它将TOML表的键和值映射到一个哈希表中。TOML表是TOML格式数据的核心,它表示一组键值对,其中每个键都是一个字符串,对应一个值。