Rust 使用常量通过强制转换计算其他常量表达式

Rust 使用常量通过强制转换计算其他常量表达式,rust,Rust,目前我有以下几点 const WIDTH : u16 = 1920; const HEIGHT: u16 = 1080; const PIXELS : usize = 1920 * 1080; 如果有这样的东西会更好 const WIDTH : u16 = 1920; const HEIGHT: u16 = 1080; const PIXELS : usize = usize::from(WIDTH) * usize::from(HEIGHT); 但这不会编译。我假设这是因为const是编译

目前我有以下几点

const WIDTH : u16 = 1920;
const HEIGHT: u16 = 1080;
const PIXELS : usize = 1920 * 1080;
如果有这样的东西会更好

const WIDTH : u16 = 1920;
const HEIGHT: u16 = 1080;
const PIXELS : usize = usize::from(WIDTH) * usize::from(HEIGHT);
但这不会编译。我假设这是因为const是编译时变量,不能依赖usize::from的执行。有其他选择吗?

usize::from不是一个常量函数。如果是的话,你的例子就可以编译了。相反,您可以使用简单的强制转换变量,这是usize::from内部的全部功能:

常数宽度:u16=1920; 常数高度:u16=1080; 常量像素:usize=宽度为usize*高度为usize;