在 Typescript 中,有多种方法可以输入值,因此它只能是特定的字符串
例如
type example = "hello" | "world";
Run Code Online (Sandbox Code Playgroud)
我是否仅限于 Rust 中的“String”类型,或者有没有办法像 Typescript 中那样缩小范围?
现在我有:
pub struct ButtonProps {
pub color: String
}
Run Code Online (Sandbox Code Playgroud)
但颜色可以是任何东西,我只想它是“主要”或“次要”
我该怎么做呢?
不,Rust 中没有等效的功能。我们只需使用enumRust 即可完成相同的任务。
#[derive(Copy, Clone, ...)]
pub enum ButtonPropsColor { Hello, World }
pub struct ButtonProps {
pub color: ButtonPropsColor,
}
Run Code Online (Sandbox Code Playgroud)
然后,如果您愿意,您可以编写转换函数来从String到ButtonPropsColor,反之亦然。
impl From<&str> for ButtonPropsColor {
fn from(s: &str) -> ButtonPropsColor {
...
}
}
impl From<ButtonPropsColor> for String {
fn from(s: ButtonPropsColor) -> String {
...
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
302 次 |
| 最近记录: |