Rust中的函数重载和可选参数事例
来自高级语言的我们,在创建和使用Rust中的函数时,常常会错过灵活性。Rust函数默认不具备以下功能。
函数重载(通常出现在C++/Java/JS/C#中)
可选参数(Python中的基本功能)
命名参数(Python中的基本功能) 很多人说,Rust已经可以通过
trait
、泛型
和struct
来提供这些功能。但是,我还没有找到任何关于这方面的具体例子或者彻底的教程,特别是关于实现的利弊分析。因此,我试图自己实现这些功能。结果发现,它们并不复杂,只需要trait
、泛型
和struct
,没有宏,也没有nightly
版本功能。下面是我的实现。Github: https://github.com/tidunguyen/flexible-fn-rs
我很愿意分享我的实现。
它作为参考,以便其他人可以在此基础上提供更复杂、更灵活的API
我希望得到大家的反馈,因为我对Rust还不是很精通,特别是对于那些我怀疑在使用时会带来副作用的东西,比如泛型里的
Sized
约束。同时我也希望我的分享能作为证明Rust也可以有灵活的函数
以上是Reddit上原帖内容,代码示例在Github上&#