c – 运算符与函数行为
作者:互联网
我正在阅读以下文件,
https://code.google.com/p/go-wiki/wiki/GoForCPPProgrammers
并发现下面的陈述有点模棱两可:
Unlike in C++, new is a function, not an operator; new int is a syntax error.
在C中,我们将运算符实现为函数,例如使用运算符.
那么一般来说编程语言中运算符与函数的确切区别是什么?
解决方法:
函数和运算符之间的实际区别取决于编程语言.在简单的C中,运算符是语言本身的一部分.无法添加运算符,也无法更改现有运算符的行为.这不是C的情况,其中运算符被解析为函数.
从完全不同的角度来看,考虑Haskell,其中ANY(二进制)函数可以被视为二元运算符:
如果你不说Haskell,但了解点产品,这个例子仍然应该是相当简单的.鉴于:
dotP :: (Double, Double) -> (Double, Double) -> Double
dotP (x1, y1) (x2, y2) = x1 * x2 + y1 * y2
都
dotP (1,2) (3,4)
和
(1,2) `dotP` (3,4)
会给11.
为了解决Go文档中的引用:Go开发人员只是强调在C语言中,人们会将new视为具有自己语法的关键字,应该将Go视为任何其他函数.
标签:c,go,operator-overloading,syntax,new-operator 来源: https://codeday.me/bug/20190831/1777661.html