首页 > 解决方案 > 将泛型类型限制为原始数字类型

问题描述

我们可以通过where 子句将类型限制为一个或多个特征。

我的问题是:

标签: rust

解决方案


不。

要使用参数类型,您需要特征来定义要对其调用的有效操作。因此,您需要一个包含所有要调用的操作的特征(或更多)。

Rust 中的“原始”类型在任何方面都没有特别之处。std::ops就像任何“非原始”数字类型一样,它们通过来自(尽管显然使用编译器内在函数)的特征来定义它们的运算符。

事实上,“原始”和“非原始”数字类型之间的界限甚至有些模糊,因为对于缺少 FPU 的目标,标准库可能会在代码中实现浮点类型,而在 Rust 中它可以透明地做到这一点给用户。

所以真的,没有原始数字类型这样的东西。数字类型是通过提供您需要调用的任何运算符来定义的。因此,只需通过特征限制您的类型std::ops


推荐阅读