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

培训门户网站源码网络营销策划书案例

培训门户网站源码,网络营销策划书案例,提供app开发公司报价,武汉的网络设计公司一、源码 这段代码定义了一个泛型结构体 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://www.dtcms.com/wzjs/189993.html

相关文章:

  • 小城镇建设官方网站seo网络优化前景怎么样
  • 网站敏感关键词.txt产品营销方案策划书
  • 广州做响应式网站佐力药业股票
  • 视频弹幕网站怎么做百度保障平台 客服
  • 3d动画制作收费标准企业网站排名优化价格
  • 深圳java网站建设常用的网络营销方法及效果
  • 建设网商城网站需要在那里备案邵阳做网站的公司
  • 微信企业号百度自然搜索排名优化
  • 做网站的标准百度官方优化指南
  • 武汉网站建设 loongnet口碑营销成功案例
  • 商城网站开发文档北京seo网站优化培训
  • 网站建设交流服装市场调研报告
  • 一般网站服务费怎么入账做分录如何创建一个自己的网站
  • wordpress站点地址url设置定向推广
  • 黄色国内外网站网站推广方式有哪些
  • 兴科cms网站建设系统我要安装百度
  • 河南郑州疫情真实数亚马逊关键词快速优化
  • 中文wordpress网站模板下载网络推广人员
  • 郑州网站搭建的公司搜索引擎入口网址
  • 做网站这么做常见的网络营销方式有哪几种
  • 网站后台开发教程适合30岁女人的培训班
  • 安阳网吧seo关键词排名优化软件怎么选
  • 营销建设网站制作列举网络推广的方式
  • 青岛教育平台网站建设百度销售岗位怎么样
  • 网站管理文档怎么写希爱力5mg效果真实经历
  • 新品发布会现场深圳优化网站方法
  • 青海省wap网站建设公司北京疫情最新消息
  • wordpress网页布局惠州百度seo
  • 漳平网络建站公司百度推广可以自己开户吗
  • 新建网站百度怎么收录长沙 建站优化