我想知道运营商或关键字是否相同?如果没有什么区别?
答案 0 :(得分:2)
关键字是保留的令牌,在给定的编程语言中具有特殊含义。 Operators是可以带一个或多个参数的关键字。它们通常与标准数学运算相关联,但例如new也被视为单个参数运算符。运算符通常用中缀表示法(left [operator] right
)编写,并且可以嵌套(考虑到它们的precedence)。此外,许多语言允许运算符超载,但一般不一定是关键字。
答案 1 :(得分:0)
+
:运算符
new
:关键字,但也是操作符
const
:关键字但不是运营商
从广义上讲,“关键字”是指任何其他有效的标识符(除文字之外的一些内容),它们不能是一个,因为它是由语言保留的。 (标识符可以是变量名,类名,命名空间名等)关键字是关键单词,这就是全部。他们甚至可能 nothing ,例如Java的const
关键字。
运算符是一种语言元素,可以执行某些操作,例如加法,括号,new
等...它可能是也可能不是单词。
答案 2 :(得分:0)
关键字是在您编程的语言中具有特殊含义的“单词”,其中一些单词执行某些操作,因此也是运算符。就像新关键字一样,也是一个运营商。
http://msdn.microsoft.com/en-us/library/kewsb8ba(v=VS.100).aspx
像new这样的运算符通常被认为是“字母数字运算符符号”而不是关键字。其他示例包括sizeof
delete
throw
instanceof
我喜欢在Smalltalk中定义和处理关键字的方式:
关键字:只是一个标识符 它的末端有一个冒号,例如 anyIdentifierLikeThis:是{keyword}。 在Smalltalk中,只有关键字 特殊的,它形成一个 “关键字消息”。这是一个独特的 一种令牌(不同于 标识符或字符串)但它的 意味着作为个人令牌不是 特别。有些语言有 {keywords}喜欢BEGIN和END with 内在的特殊含义。 {Keyword} in Smalltalk不是这种东西, 它完全是一种句法形式。
Ther只有在Smalltalk中保留的六个“关键字”:true,false,nil,self,super和thisContext。因此,并非所有关键字都必须使用该语言中的保留字。
参考:http://c2.com/cgi/wiki?SmalltalkTutorial
关于真与假:
在某些语言(如Java)中,这些是布尔文字。在c#中,这些都是运算符和文字。在这两种情况下,这些都不被视为关键字。在Smalltalk中,这些是关键字。真实地展示了事物从语言到语言的变化。