Julia语言程序设计
上QQ阅读APP看书,第一时间看更新

1.4 命名规则与关键字

语言中的各种要素,包括关键字、类型、变量、函数等,都需要有标识的名字。在Julia中创建这些要素时,需要遵循Julia在命名方面的规则:

·内置的关键字可以是名称的一部分,但不能作为完整的名称。

·名称对大小写敏感。

·名称首字符必须是下划线、英文26个字母的小写或大写,或者编码大于0x00A0的Unicode字符[1](这是Julia不同于其他语言的地方)。

·名称中不能有算术运算符或内部的标识符,包括@、#、$、%、^、&等。

例如,以下的名称是合适的:


Abc  abc_cde  _fg  China  china  VAR  Var01  Var!02  Var

其中,China与china是不同的名称;虽然Var!02是允许的(符号!是逻辑运算符),但不建议这么做。下面的名称是不符合规则的:


1abc  @abc  $var  [var]  for

另外,Julia内置了大量的函数或常量。如果名称与它们相同,虽然语法规则上是允许的,但不会成功。例如:


julia> pi
π = 3.1415926535897...

julia> pi =3
ERROR:Cannot assign variable Math Constants pi from module Main.
3

所以,从编程规范来说,也不建议选用有冲突的名称。

不过,由于Julia对Unicode的广泛支持,在命名方面我们有了更多的选择。例如:

以上这些都可以在Julia中作为名称使用:

这是Julia独具特色的地方。

无论是大肆流行的Python语言,还是广泛使用的Java语言,或是性能之王C++语言,对Unicode的支持都极为蹩脚。对于中国这种非英文为母语的国家,一旦涉及本土语言文本的处理,就会遇到很多的麻烦。而Julia从根源上就考虑了多国语言问题。以此为基础,非英文处理将有着极大的便利。可以说,由于大量Unicode字符的加入,Julia语言开发将极为有趣。

而且,Unicode还只是Julia的冰山一角,相信读者在后续逐步学习的过程中,会被其独特的魅力所吸引。

关键字是Julia语言的基本元素,用于关键的声明、标识或限定,一般是一串小写字母。本书将它们粗略分成六类,列举如下:

·类型声明:abstract、primitive、type、struct、function、macro、new。

·权限标识:global、local、mutable、const、outer。

·模块操作:module、baremodule、using、import、export。

·逻辑结构:where、for、while、break、continue、if、elseif、else、in。

·语句块:begin、quote、let、end、do。

·混合编程:ccall。

它们的意义会在后续章节中遇见,到时会具体讲解。

[1] Unicode字符有详细的分类表,类别有31种。至于Unicode编码大于0x00A0的字符集,主要指分类为Letter或Symbol的那些字符,类别中分别有Lu/Ll/Lt/Lm/Lo/Nl或Sc/So标识,以及数学符号分类Sm中的部分字符。具体参见www.fileformat.info/info/unicode/category/index.htm。