Dzwebs.Net

撰写电脑技术杂文十余年

rust struct多字段可输入任意泛型数据并计算面积的示例

Admin | 2023-12-22 9:13:08 | 被阅次数 | 799

温馨提示!

如果未能解决您的问题,请点击搜索;登陆可复制文章,点击登陆

    在上一篇文章中,我们实现了在 struct多字段中随意输入泛型的功能,但是并未实现计算圆面积的功能。

    要想使用struct多字段进行各种算术运算,比如计算面积,也没那么容易。下面就参考如下代码吧。

use std::fmt::Display;
#[derive(Debug)]
struct Mypoint<X,Y>{
    w:X,
    h:Y
}
impl<X:Display+PartialOrd,Y:Display> Mypoint<X,Y>{
    fn mycircle(self)->f64{
        let x=format!("{}",self.w);
        let y = format!("{}",self.h);
        let w = match x.parse::<f64>() {
            Ok(v) => v,
            Err(e) => {
                println!("宽度输入有错误…{}",e);
                0.0
            },
        };
        let h = match y.parse::<f64>() {
            Ok(v) => v,
            Err(e) => {
                println!("高度输入有错误…{}",e);
                0.0
            },
        };
        w * h
    }
}
fn main(){
    let mp=Mypoint{w:6,h:5.0};
    println!("{:?}",mp.mycircle());
    let mp=Mypoint{w:6.0,h:"hello"};
    println!("{:?}",mp.mycircle());
    let mp=Mypoint{w:"9",h:"我偏不输入数字"};
    println!("{:?}",mp.mycircle());
}

    运行代码,输出如下结果。
    30.0
    高度输入有错误…invalid float literal
    0.0
    高度输入有错误…invalid float literal
    0.0


该杂文来自: 最新技术

上一篇:rust之struct中的字段可为任意类型搭配的方法

下一篇:rust impl构造链式函数调用的示例

网站备案号:

网站备案号:滇ICP备11001339号-7

版权属性:

Copyright 2007-2021-forever Inc. all Rights Reserved.

联系方式:

Email:dzwebs@126.com QQ:83539231 访问统计