rust - 如何通过 Rust 中的赋值运算符监听和响应变量突变?
问题描述
一些操作具有可以在调用操作时有效地响应的特征,如下所示:
use std::ops;
#[derive(Debug)]
struct MyNum(u32);
impl ops::Add for MyNum {
type Output = Self;
fn add(self, b: Self) -> Self {
println!("Added {} and {}", self.0, b.0);
MyNum(self.0 + b.0)
}
}
fn main() {
let a = MyNum(1);
let b = MyNum(2);
let c = a + b;
println!("C = {}", c.0);
}
但是,正如文档所述:
由于赋值运算符 (
=
) 没有支持特征,因此无法重载其语义
我希望能够通过赋值运算符监听值何时发生变化。这个想法是开发类似于Svelte 库但使用 Rust 的东西。捕获变量变异的最佳方法是什么 - 理想情况下在编译阶段保留任何开销?
解决方案
推荐阅读
- c++ - 在 C++ 中反转给定大小的组中的数组
- javascript - 当标记之一为空经度和纬度时,传单地图不显示所有标记
- php - 循环遍历所有复选框,在 PHP 中选中或取消选中它
- node.js - 如何使用 kenxjs 在 psql 中批量插入?
- google-chrome - 在 Web 浏览器中修剪 NURBS
- android - Android TextView:与另一个具有相同 ID 的标签冲突
- javascript - 我可以使用 WebAssembly 在我的 Web 应用程序中安全地执行不受信任的用户代码吗?
- c++ - 尝试在主函数中打印时不打印数组元素
- javascript - 如何使 AWS S3 上传可重用函数并在我选择的任何文件中使用来自 AWS 的回调?
- vsto - VSTO Outlook 插件:AppointmentItem.Body 更改时如何处理事件