英文:
How can I get built-in operator as a function?
问题
目标
如何将内置运算符作为函数使用?
我想利用函数式编程的优势。
我有一些带有向量化函数的文件(例如Remap[inT any](sl []inT, f func(inT) inT)),它们接受一个标量函数,并将其应用于一个或两个切片的每个元素。
我知道我可以这样做:
func eq(a, b int) bool {
return a == b
}
然后希望在内联后没有额外开销。
但是,如果有一个简短、高效且一致的方法,我更喜欢使用它。
在Python 3中,我会使用:
int.__eq__
在Rust中,我会使用:
i32::eq
在C++中,我会使用:
#include <functional>
/*code here*/
std::equal_to<int>()
你会如何在Go中实现这个目标?
英文:
The goal
How can I get a built-in operator as a function?
I want to take advantage of functional programming.
I have some files with vectorizing functions (eg. Remap[inT any](sl []inT, f func(inT) inT)), which take a scalar function to apply on every element of one or two slices.
I know I could:
func eq(a, b int)bool{
return a==b
}
and hope that after inlining there'll be no overhead.
<br><br><br>
But I prefer a short, performant & consistent way, if exists.
- In Python 3 I would:
int.__eq__
- In Rust I would:
i32::eq
- In C++ I would:
#include <functional>
/*code here*/
std::equal_to<int>()
How would you achieve this in Go?
答案1
得分: 3
你无法将内置运算符作为函数使用。Go语言中没有提供类似的functional
包。
英文:
> How can I get built-in operator as a function? Any functional
package in Go?
You cannot.
通过集体智慧和协作来改善编程学习和解决问题的方式。致力于成为全球开发者共同参与的知识库,让每个人都能够通过互相帮助和分享经验来进步。
评论