gpt4 book ai didi

variables - Go 是否支持运算符类型变量?

转载 作者:IT王子 更新时间:2023-10-29 01:12:09 24 4
gpt4 key购买 nike

这可能不是一个好问题,因为我不知道有任何编译语言支持此功能,但由于 Go 总是让我感到惊讶,所以我还是会问它:

为了我自己的练习,我正在用 Go 语言编写一个计算器小程序。我想知道是否有一种方法可以声明和分配类型为“运算符”的变量,例如,我可以这样写:

var o Operator

o = +

var o1 Operator

o1 = /

然后像这样写函数

func DoOperation(a,b int,o Operator) int{

return a o b

}

(不,我不是在问运算符重载。)

顺便说一句,我不知道有任何编译语言支持这种东西(我不是这方面的专家)。我确实查看了运算符(operator)下的文档,但一无所获。 Go 能再给我惊喜吗?

编辑:接受的答案表明 Haskell 支持这一点,

最佳答案

不,Go 运算符不是函数,因此没有有效的右 watch 达式。它们以通用方式工作,例如加号运算符适用于所有数字类型,也不支持 la haskell 中缀符号。

您必须使用反射编写您自己的“软”通用加法函数。

Haskell 是一种可以满足您所有需求的编译语言。

关于variables - Go 是否支持运算符类型变量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22627113/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com