rust - Rust 中的数学语法
问题描述
在 Rust 中,简单的数学表达式的语法似乎sin(x)+cos(y)*sqrt(z)
必须写成x.sin()+y.cos()*z.sqrt()
,这很奇怪,而且是反自然的,并且在使用更复杂的表达式(exp、log、powers 等)时容易出错。
如何以“经典”方式编写数学表达式?如果不可能,为什么 Rust 要求以这种方式编写它们?
解决方案
如前所述,这些方法是在类型上定义的。一种可能的替代方法是直接调用该方法,例如:
f64::sqrt(25.0);
如果你真的想,你也可以像这样绑定它:
fn example_a(n: f64) -> f64 {
let sqrt = f64::sqrt;
sqrt(25.0)
}
const SQRT: fn(f64)-> f64 = f64::sqrt;
fn example_b(n: f64) -> f64 {
SQRT(25.0)
}
推荐阅读
- javascript - 试图获取最后一个 TABLE 元素(xpath)
- node.js - 对等点使用 simple-peer 连接时无法将视频流式传输到对等点
- java - 如何设置 servlet 的映射,使其侦听与 CXF 相同的路径?
- swiftui - 将新项目添加到列表后选择器不刷新
- c# - 从另一个任务创建一个任务并以最高权限运行,
- java - 为什么我的第二个 JButton 在 Java swing 代码中的 JFrame 上不可见?
- python - Keras如何修改verbose的显示信息
- javascript - 会话存储一直在激活
- php - 调整大小并保存图像
- python - 从不同版本的 tf.keras 加载保存的模型