rust之结构体应用demo

目录

1、结构体的简单应用

2、结构体测试程序

3、测试结果

 4、总结


1、结构体的简单应用

        应用程序主要用到了rust的结构体、枚举以及函数和match关键字;示例基于计算长方形的面积展开的,分为长方形创建,计算长方形面积,判断面积值是否合理等功能,下面我们就来看看代码实现。

2、结构体测试程序

        首先我们来看看长方形结构体的定义,具体定义如下图所示:

struct Rect {
    width: i32,        //宽
    height: i32,       //高
}

        枚举类型主要是来表示长方形面积是否合理,主要有三种情况,面积大于0,面积计算正确,面积小于0,面积计算有误,面积等于0,面积计算异常; 在看看枚举类型是如何定义的:

enum Result {
    OK,
    ERROR,
    ABNORMAL,
}

        使用impl关键字,为结构体Rect绑定一些方法,这些方法主要是用来初始化Rect实例,计算面积,判断面积是否合法的!下面看一下这些方法的定义与实现:

impl Rect {
    fn area(&self) -> i32 {
        self.width * self.height
    }

    fn new(width: i32, height: i32) -> Rect {
        Rect { width, height }
    }

    fn istrue(&self) -> Result {
        let s = self.area();

        if s > 0 {
            Result::OK
        } else if s < 0 {
            Result::ERROR
        } else {
            Result::ABNORMAL
        }
    }
}

        最后我们在主函数中实现示例的测试逻辑代码部分,按照先初始化Rect实例,计算面积,判断面积是否合理的顺序进行编写;具体的逻辑代码如下所示:

fn main() {
    let rect = Rect::new(0, 3);

    let c = rect.area();

    let ret = rect.istrue();

    println!("c value is {}", c);

    match ret {
        Result::OK => {
            println!("area caculate is ok");
        }
        Result::ERROR => {
            println!("area caculate is error");
        }
        Result::ABNORMAL => {
            println!("area caculate is abnormal");
        }
    }
}

3、测试结果

        测试结果基本都是正确的,菜哥的测试部分结果如下所示:

rust之结构体应用demo_第1张图片

 4、总结

        rust的结构体还是比较好学的,主要是为struct绑定一些方法,这些就有点类似于在c里面为结构体绑定一些函数指针啦!好啦!文中若是有说的不对的地方,欢迎大家在评论区留言,博主是一个又菜又爱玩的人!

你可能感兴趣的:(rust学习之路,rust)