< 返回版块

HelloReboot 发表于 2021-12-09 21:28

Tags:范型,约束,参数

能不能简单的实现如下代码 而不是用std::ops::中的操作traits 类似ts中的参数Union约束 { fn test(a: T) where T: u32 + u8 + i32 + f32 { println!("{:?}", a); } }


Ext Link: https://www.runoob.com/typescript/ts-union.html

评论区

写评论
gwy15 2021-12-09 22:11

可以,提取出来内部需要用到的操作,写成一个 trait就行。就你这个例子,直接用 fn(impl Debug) 就行。如果不想要其他的类型,可以

trait T: Debug {}
impl T for f32 {}
...
fn(x: impl T)

ywxt 2021-12-09 21:37

不能,和Union Types類比的應該是Rust的enum

enum IntOrString {
    Int(i32),
    String(String),
}

1 共 2 条评论, 1 页