rust - 有什么方法可以将常量与 Rust 中的类型相关联?
问题描述
我想关联一个在我的特征中定义的常量,并在通用函数中使用它。
trait My {
const C: usize;
}
fn f<T>() -> [i32; T::C] where T: My {
unimplemented!();
}
但是锈不能处理这个
有没有其他方法可以从泛型函数的类型中获取常量?
解决方案
您可以使用generic_array板条箱 - 这不允许您使用固定大小的 Rust 数组,但您可以将数组长度表示为关联类型
trait My {
type C: ArrayLength<i32>;
}
然后用 trait bound 引用它
fn f<T>() -> GenericArray<i32, T::C> where T: My {
...
}
然后,您还可以使用to_usize从类型中获取常量值。
推荐阅读
- python-3.x - return 语句在 for 循环中无法正常工作
- php - 隐藏除某人之外没有登录用户的所有产品价格
- json - 如何从我的 ASP.NET Core AJAX 表单访问我的控制器返回的 json 数据?
- c# - 如何在 C# 中声明带有可选参数的函数
- python-3.x - 如何从 gpg 密钥中获取到期日期?
- javascript - 从 chrome 扩展程序访问网站数据的许可是什么
- javascript - 如何从 dom 选择器中添加值?
- python - to_csv pandas python不在excel中显示tabluar格式
- javascript - 无法注册,一直说不好的请求
- laravel - 如何为-excel文档上传检查编写功能测试