标签:c go operator-overloading syntax new-operator
我正在阅读以下文件,
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
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。