`
zhouyrt
  • 浏览: 1127985 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

名字/标识符

阅读更多

名字 是指代表某些东西的有助于记忆的字符序列。名字可以使我们采用符号形式标识符引用变量、常量、子程序、形参而不用采用更低级的如地址一类的概念。从低级语言到高级语言的发展过程中,名字 是抽象出来的最重要的概念之一。

 

名字不只是用于变量,也常用于常量、子程序、形参等。

标识符一词常常与名字概念互换使用。

 

一、名字的长度

早期的程序设计主要用来解决数学问题,数学中常用的就是单个字符的变量。如x,y,z。

Fortran1 打破了使用单个字符名字的传统,它最多允许使用6个字符。直至到Fortran77。

Fortran95 中变量名字最多允许31个字符。

C89/Java/JavaScript/Ada/C# 对名字长度没有限制,但Ada中允许施加一种长度限制,这种限制不少于200个字符。

C99类似于C89,但名字中前63个字符必须有意义。

 

二、名字是否区分大小写

多数语言,如基于C的语言中(Java,JavaScript等),名字是区分大小写的。或者说这些语言中名字大小写是敏感的。
如 name,Name,NAME 是三个不同的标识符。部分人觉得很疑惑,这明明就是一个东西啊。认为这严重损害了语言的可读性。
因为看上去十分相似的名字实际上却表达了不同的实体。

 

三、特殊的名字-特殊字

名字中有一些受到特别关注的,称为特殊字。特殊字分为关键字保留字

关键字 ,它只在特定的上下文中式特殊的。
如JavaScript中function内的arguments,它只在function内是特殊的,你仍然可以 使用它作为标识符 ,如变量名,函数名。但显然这样会引起歧义。

保留字 ,它是程序设计语言中的特殊字,它不能用做变量、形参、子程序等的名字。
如Java中的class,JavaScript中的var。又或C、Java、JavaScript中的while,for等。这些都不能作为标识符。

这两个概念其实很清楚,但后续将其模糊了。尤其在ECMAScript5中提出了“keyword”和“Future Reserved Words”的概念。
如ECMAScript5中将var、break、for、while等称为关键字(keyword),见ECMAScript5 7.6.1.1


 

把为语言后续版本预留的,暂未实现的名字称为未来保留字(Future Reserved Words),见ECMAScript5 7.6.1.2


 

一些书籍表述也各不同,

《JavaScript高级程序设计》第二版基本上和ECMAScript 5 一致,称var、break、for,while等是关键字。见该书19页。按最早的概念是不对的,应该称保留字。

《JavaScript权威指南》第五版亦未分清关键字和保留字,2.8节大标题为“保留字”,表2-1又称“保留的JavaScript关键字”,表2-2又称“ECMA扩展保留的关键字”。实际上这些都是保留字,前者是已经实现的,后者是为语言后续版本预留的暂未实现的。

当然这一切由于ECMAScript5 自身就没有严格的区分关键字和保留字的概念。

 

四、大多语言,名字有以下规则

1,第一个字符时字母、下划线(_)或美元符号($)
2,剩下字符可以是字母、下划线、美元符号和数字

 

 

 

 

  • 大小: 5.7 KB
  • 大小: 14.1 KB
5
0
分享到:
评论
1 楼 wmingjian 2011-02-06  
学究气很浓,但是非常不错,赞一个

相关推荐

    VC51中文标识符工具

    前文已经说了,我们的中文标识符必须按照“nameof(“变量名字符串”)”的格式。我们复制的时候,把所有出现这样格式的内容都替换掉。“nameof”还保留不变。“(“变量名字符串”)”都变成对应GB码的十六进制字符。...

    python标识符命名规范原理解析

    简单地理解,标识符就是一个名字,就好像我们每个人都有属于自己的名字,它的主要作用就是作为变量、函数、类、模块以及其他对象的名称。 Python 中标识符的命名不是随意的,而是要遵守一定的命令规则,比如说: 1....

    Java 生成 UUID通用唯一标识符.docx

    版本 3:UUID 是通过散列(MD5 作为散列算法)名字空间(namespace)标识符和名称生成的; 版本 4 - UUID 使用随机性或伪随机性生成; 版本 5 类似于版本 3(SHA1 作为散列算法)。 为了能兼容过去的 UUID,以及应对...

    C#标识符的使用小结

    标识符(Identifier)是适用于变量、类、方法和其他各种用户...7button这个名字不是一个合法的标识符,因为它以数字开头。input field也是一个不合法的标识符,因为它包含了一个空格。C#大小写敏感——大写和小写字母

    free pascal的函数过程大全.doc

     其中,program是保留字,表示程序从这个地方开始,pname是标识符,是程序的名字,可由程序员自定。保留字是PASCAL选定的,具有固定意义和用法的专用单词或缩写,这些单词不允许作其它使用。如上,“program”就有...

    yfz_getIdentifier.zip

    Android安卓-获取控件的id(标识符)-根据控件id获取对应的值或控件名字-动态获取R.string的值

    《云计算全栈》-python篇:检查标识符

    2 案例2:检查标识符 2.1 问题 创建checkid.py脚本,要求如下: 程序接受用户输入 判断用户输入的标识符是否合法 用户输入的标识符不能使用关键字 有不合法字符,需要指明第几个字符不合法 1234 2.2 方案 本题主要...

    C++名字空间/C++命名空间

    0、序言  名字空间是C++提供的一种解决符号名字...  一个名字空间可以包含多种类型的标识符,如下面所列:  变量、常量、函数、结构体/联合体/枚举、类、嵌套名字空间  名字空间成员的引用方法如下:  namespace

    dogsled是Go静态分析工具,用于查找带有太多空白标识符的赋值/声明。-Golang开发

    dogsled dogsled是一种Go静态分析工具,用于查找具有过多空白标识符(例如x,_,_,_,:= f())的赋值/声明。 它的名字是受此reddit帖子启发的。 安装go get -u github.com/ dogsled dogsled是一个Go静态分析工具...

    javascript基础语法——全面理解变量和标识符

    标识符(Identifier)就是一个名字,用来对变量、函数、属性、参数进行命名,或者用做某些循环语句中的跳转位置的标记 //变量 var Identifier = 123; //属性 (new Object).Identifier = 'test'; //函数及参数 ...

    C语言编码规范

    整数标识符 ‘i/ui/l/ul’+一般标识符 iNumber, ulCurrent 浮点型标识符 ‘f/d’+一般标识符 fPrice,dMoney 逻辑标识符 ‘b’+一般标识符 bIsDetailed 对象标识符 特征小写字母+一般标识符 fMyStatus, tMyTree 指针...

    [黑客基地delphi教程].delphi8

    标识符就是这些语法单元的名字。 定义标识符一般采用一个或多个具有失单意义的英文单词,但是要注意以下5点。 1. 标识符由字母,数字,或下划线组成,不能包含空格。 2. 必须以字母或下画线开始。 3. 标识符可以是...

    Hello,Python!一起学Python之标识符怎么写(五)

    简而言之,标识符就是一个名字,类似小鲸就是属于我的名字。在编程时,它的意义就在于作为变量、函数、类、模块等对象的名称的存在。 标识符不能随意命名,要限制在一定的规则范围内: 1、由字符(A-Z、a-z)、数字...

    Python基础知识(3).pdf

    Python基础知识 标识符 标识符 计算机语言中 允许作为【名字】的【有效字符串集合】 特殊标识符 关键字 保留字 不允许另用 import keyword 查看所有 keyword.kwlist 判断是否 keyword.iskeyword() 内建 非保留字 不...

    Java电子教案

    标识符 用来标识类名、变量名、方法名、类型名、数组名、文件名的有效字符序列称为标识符。... 关键字就是Java语言中已经被赋予特定意义的一些单词,它们在程序上有着不同的用途,不可以把关键词作为名字来用。

    namelessup#golang#01-标识符与数据类型1

    1.1 关键字(25个) 1.2 预定义名字(30+个) 2.1 变量声明 2.2 多变量声明 2.3 零值机制 2.4 变量值互换 2.5 _丢弃变量 2.6

    C51编程基础Keil C51对标准ANSI C的扩展

    标识符是用来标识源程序中某个对象的名字的,这些对象可以是语句、数据类型、函数、变量、常量、数组等。 一个标识符由字符串、数字和下划线组成,第一个字符必须是字母和下划线,通常以下划线开头的标识符是编译...

    c语言入门教程.txt

    那么变量我们总要给它取个名字吧,这个名字我们叫做标识符。 标识符的命名有一定的规则: (1).标识符只能由字母、数字和下划线三类字符组成 (2).第一个字符必须是字母(第一个字符也可以是下划线,但被视作系统...

    跟我一起学C++

    用const给字面常量起个名字(标识符),这个标识符就称为标识符常量;因为标识符常量的声明和使用形式很像变量,所以也称常变量 定义的一般形式: const 数据类型 常量名=常量值; 数据类型 const 常量名=常量值; ...

    SQL语法 分隔符理解小结

    特别要提到的是,分隔的标识符能够使你在命名(标识符或变量的名字)的时候,免于使用在将来的SQL标准中可能出现的保留字。另外,分隔的标识符能够包含一些在通常的标识符名称中被视为不合法的字符,如空格。 在SQL ...

Global site tag (gtag.js) - Google Analytics