首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >也使用函数作为方法,并且只实现一次。

也使用函数作为方法,并且只实现一次。
EN

Stack Overflow用户
提问于 2022-08-16 15:56:03
回答 1查看 51关注 0票数 0

我正在编写一个库,在其中我需要提供许多函数或方法来提供操作。例如,其中一个操作是计算给定值的余弦。所以我会写这样的东西:

代码语言:javascript
运行
复制
fn cos<T>(value: &MyValue<T>) -> MyValue<T> {
    todo!()
}

然后,我就可以把它叫做let result = cos(&my_value)

是否有一种方法或最佳实践,以便我也可以提供类似let result = my_value.cos()的API,而不必编写cos函数两次?我一直在考虑创建自己的宏来实现这个功能,但是我想知道是否有另一个库提供了这个特性,或者是否有更好的方法来做到这一点。

EN

回答 1

Stack Overflow用户

发布于 2022-08-16 16:36:32

可以通过调用方法实现中的函数来做到这一点,如下所示:

代码语言:javascript
运行
复制
fn cos<T>(val: &MyValue<T>) -> MyValue<T> {
    // snip
}

struct MyValue<T> {
    // snip
}

impl<T> MyValue<T> {
    fn cos(&self) -> Self {
        cos(self)
    }
}

尽管如此,我不确定您为什么要这样做--正如其他人指出的那样,标准库只在这种情况下提供方法。这可能被视为违反了最小惊讶原则

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/73376881

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档