3 个版本
0.7.3 | 2024年1月23日 |
---|---|
0.7.2 | 2024年1月20日 |
0.7.1 | 2024年1月19日 |
0.7.0 |
|
1549 在 Rust 模式
每月 37 次下载
18KB
371 行
多态性
这是一个过程宏,用于模拟特定情境下的多态性(函数重载),这在许多现代编程语言中都可以看到。它可以像 fn
或 impl
声明一样使用,但 多态性
允许具有不同签名的重复 fn
名称(参数类型)。此 多态性
实现通过使用 Local
类型绕过了孤儿规则。
示例
polymorphism!(
pub fn func(n: i32, m: i32) -> i32 {
n+m
}
pub fn func(n: f64, m: f64) -> f64 {
n-m
}
);
assert_eq!(polymorphism!(func(1,2)), 3);
assert_eq!(polymorphism!(func(1.0,2.0)), -1.0);
说明
- 这是一个概念验证,因此它非常不稳定
- 几乎未经测试,可能在边缘情况下崩溃
- 目前请不要在生产代码库中使用它
- 欢迎反馈 :)