当前位置: 首页 > wzjs >正文

重庆网站排名优化龙岗做企业网站

重庆网站排名优化,龙岗做企业网站,杭州专业网站排名优化,松岗建网站一、源码 这段代码定义了一个泛型结构体 Var 和相关的数学运算实现,主要用于封装数值类型并提供基本的算术运算功能。 /** 变量结构体 Var* 该结构体泛型参数 T 需满足 Numeric 约束*/use std::ops::{Neg, Add, Sub, Mul};/// 定义 Numeric trait,约束…

一、源码

这段代码定义了一个泛型结构体 Var 和相关的数学运算实现,主要用于封装数值类型并提供基本的算术运算功能。

/** 变量结构体 Var* 该结构体泛型参数 T 需满足 Numeric 约束*/use std::ops::{Neg, Add, Sub, Mul};/// 定义 Numeric trait,约束 T 必须实现基本数值运算
pub trait Numeric:Neg<Output = Self> +  Add<Output = Self> + Sub<Output = Self> + Mul<Output = Self> + Copy + Sized
{}// 为基本类型实现 Numeric
impl Numeric for i64 {}
impl Numeric for f64 {}/// 变量结构体,封装一个泛型值 T
#[derive(Debug, Clone, Copy, PartialEq, Default)]
pub struct Var<T: Numeric>(pub T);/// 实现 Var 与 Var 的乘法运算
/// V * V
impl<T: Numeric> Mul<Var<T>> for Var<T> {type Output = Self;fn mul(self, b: Self) -> Self::Output {Var(self.0 * b.0)}
}/// 实现 Var 与 Var 的加法运算
/// V + V
impl<T: Numeric> Add for Var<T> {type Output = Self;fn add(self, b: Self) -> Self::Output {Var(self.0 + b.0)}
}/// 实现 Var 的取反运算
/// -V
impl<T: Numeric> Neg for Var<T> {type Output = Self;fn neg(self) -> Self::Output {Var(-self.0)}
}/// 实现 Var 与 Var 的减法运算
/// V - V
impl<T: Numeric> Sub for Var<T> {type Output = Self;fn sub(self, b: Self) -> Self::Output {Var(self.0 - b.0)}
}

二、Numeric Trait 定义

pub trait Numeric:Neg<Output = Self> +  Add<Output = Self> + Sub<Output = Self> + Mul<Output = Self> + Copy + Sized
{}
  • 定义了一个名为 Numeric 的 trait,它要求实现该 trait 的类型必须支持以下操作:

    • 取负 (Neg): -x

    • 加法 (Add): x + y

    • 减法 (Sub): x - y

    • 乘法 (Mul): x * y

    • 可复制 (Copy trait): 允许按位复制

    • 大小固定 (Sized trait): 编译时已知大小

  • Output = Self 表示这些运算的返回值类型与自身类型相同。

三、为基本类型实现 Numeric

impl Numeric for i64 {}
impl Numeric for f64 {}
  • 为 i64 (64位整数) 和 f64 (64位浮点数) 实现了 Numeric trait,表明这些类型可以进行上述基本运算。

四、Var 结构体定义

#[derive(Debug, Clone, Copy, PartialEq, Default)]
pub struct Var<T: Numeric>(pub T);
  • 定义了一个泛型结构体 Var,其中 T 必须实现 Numeric trait。

  • 使用了元组结构体的形式,包含一个公开的字段 T。

  • 自动派生了一些常用 trait:

    • Debug: 支持格式化打印

    • Clone 和 Copy: 允许复制

    • PartialEq: 支持部分相等比较

    • Default: 提供默认值

五、运算实现

为 Var 实现了四种基本运算:

乘法 (Mul)
impl<T: Numeric> Mul<Var<T>> for Var<T> {type Output = Self;fn mul(self, b: Self) -> Self::Output {Var(self.0 * b.0)}
}
  • 实现 Var * Var 的运算

  • 返回新的 Var,其值为两个 Var 内部值的乘积

加法 (Add)
impl<T: Numeric> Add for Var<T> {type Output = Self;fn add(self, b: Self) -> Self::Output {Var(self.0 + b.0)}
}
  • 实现 Var + Var 的运算

  • 返回新的 Var,其值为两个 Var 内部值的和

取负 (Neg)
impl<T: Numeric> Neg for Var<T> {type Output = Self;fn neg(self) -> Self::Output {Var(-self.0)}
}
  • 实现 -Var 的运算

  • 返回新的 Var,其值为原 Var 内部值的负数

减法 (Sub)
impl<T: Numeric> Sub for Var<T> {type Output = Self;fn sub(self, b: Self) -> Self::Output {Var(self.0 - b.0)}
}
  • 实现 Var - Var 的运算

  • 返回新的 Var,其值为两个 Var 内部值的差

六、总结

这段代码创建了一个通用的数值包装类型 Var,它可以封装任何实现了基本算术运算的类型(目前是 i64 和 f64),并为这些包装值提供了加减乘和取负运算的能力。这种设计在需要统一处理不同数值类型或需要为数值添加额外功能的场景中很有用。


文章转载自:

http://yjqzW0oy.bkLhx.cn
http://k17P3baD.bkLhx.cn
http://1ukMdfw0.bkLhx.cn
http://fHixuhAW.bkLhx.cn
http://nHc0tfvF.bkLhx.cn
http://Z9kBTS0T.bkLhx.cn
http://5SWvCEh9.bkLhx.cn
http://dink9n1U.bkLhx.cn
http://z2WpEYUU.bkLhx.cn
http://zVWAGq4S.bkLhx.cn
http://6Xy2WtoF.bkLhx.cn
http://jFpGigNJ.bkLhx.cn
http://CP4NYqoG.bkLhx.cn
http://RYT2Wb2Z.bkLhx.cn
http://6sWrFgr3.bkLhx.cn
http://rwufGdDk.bkLhx.cn
http://G71yJoVv.bkLhx.cn
http://Bcls1pqd.bkLhx.cn
http://7UJwhySD.bkLhx.cn
http://0UsTt2Na.bkLhx.cn
http://UW0rb1LN.bkLhx.cn
http://MiuHOwVE.bkLhx.cn
http://qCWoY0T8.bkLhx.cn
http://6sLwAKfh.bkLhx.cn
http://yjM0oxBV.bkLhx.cn
http://KPM7t7rf.bkLhx.cn
http://63XCJslJ.bkLhx.cn
http://T0iG0kg0.bkLhx.cn
http://J3xtwZlc.bkLhx.cn
http://5wTYCgPV.bkLhx.cn
http://www.dtcms.com/wzjs/637286.html

相关文章:

  • django完整网站开发携程网站票面价含机场建设费吗
  • 企业 网站设计网站建设实习内容
  • 做药的常用网站apache多个网站
  • 外贸五金网站承德网站制作加盟
  • 个人网站建设分几个步走公司查询企业查询 天眼查
  • linux系统怎么做网站创意作品设计及简介
  • 网站会员功能怎么做赌钱网站代理
  • 杭州个人做网站app页面设计图片
  • 网站主页设计收费创业计划书(大学生版)
  • 网站建设工作内容网站做视频的软件
  • 登录广东省建设监理协会网站首页青岛网站建设选圣城
  • 网站开发的后台开发工具展馆设计费取费标准一览表
  • 网站开发是什么职业排名好的锦州网站建设
  • 东莞汽车总站停止营业岳阳网站开发建设
  • 网站开发相关文献东莞网上招聘平台有哪些
  • 网站建设公司地址在哪wordpress时间轴模版
  • 被老板抓到用公司产品做自己的网站开店加盟
  • 人社局网站建设管理工作总结红河网页设计
  • 网站建设定制公司互联网广告销售好做吗
  • 游戏网站开发计划书软文广告发布平台
  • 网站建设 制作教程帮忙做任务网站
  • 岚县网站建设西安网站建设ruiqinet
  • 网站开发开票交税网站建设相关行业有哪些
  • 管理公司网站建设宝安专业网站建设
  • 门户网站的细分模式有站长号
  • 多语言网站开发设计制作公司网站的作用
  • 西安网站建设那家强设计店面装修
  • 推广普通话活动总结优化推广seo
  • 网站建设公司哪家好该如何选择网页设计成品网站
  • html 网站建设中模板有错误的wordpress