






























Abstract: 本文介绍Julia变量的相关内容,包括Julia的变量命名,以及命名的惯用法则(命名风格)
Keywords: Julia变量,Julia变量名,Julia命名一般规则
如果Julia不是你的入门编程语言,那么对于编程语言中的变量应该已经习以为常,在C语言中,变量名对应于一个内存地址(需要声明变量类型)而在高级一些的语言中,比如python,变量名更抽象,他对应于一个值,或者可以理解为它存储了这个值,这个值可以是该语言允许的任何类型(不需要声明变量类型)。
Julia的变量属于后者,不需要声明变量类型,而是可以让你的合法变量名随时存储任何Julia变量类型的值。
如果Julia是你的第一门编程语言,那么你只要知道,变量名存储了一个变量值就可以了。
在交互模式下,我们进行一下操作,比如输入 x=10 后回车,就会输出10这个结果,接着你可以输入指令 x+1 回车,就会显示 10+1 的结果,如下:
# Assign the value 10 to the variable x
julia> x = 10
10
# Doing math with x's value
julia> x + 1
11
# Reassign x's value
julia> x = 1 + 1
2
# You can assign values of other types, like strings of text
julia> x = "Hello World!"
"Hello World!"
任何编译器解释器都不会关心这个变量叫什么名字,所有变量在解释器面前一视同仁,所以你不用担心你的变量名字不好听而影响程序执行效果。
接着再看几个例子(例子都来自Julia文档)
julia> x = 1.0
1.0
julia> y = -3
-3
julia> Z = "My string"
"My string"
julia> customary_phrase = "Hello world!"
"Hello world!"
julia> UniversalDeclarationOfHumanRightsStart = "人人生而自由,在尊严和权利上一律平等。"
"人人生而自由,在尊严和权利上一律平等。"
更厉害的是Julia的变量名不止局限于英文字符的组合,unicode字符通过 UTF-8 编码也可以成为变量,换句话说,希腊字母,中文字符,日文,韩文等这些都可以做变量名,这就厉害了,python 和c/c++ 是不行的:
julia> δ = 0.00001
1.0e-5
julia> 你好地球 = "Hello world"
"Hello world"
julia> 안녕하세요 = "Hello"
"Hello"
怎么样,可以用中文命名变量名了以后,你会在你的工程中使用中文命名你的变量名么?
注意到上面 $\delta$ 的同学们可能在想这个变量在实际中怎么使用呢?好消息,用latex就可以,当然只有部分编辑器或者IDE支持这个功能,Julia REPL 是支持的,上面的 $\delta$ 在Julia REPL的写法就是 \delta-*tab* ,如果你发现那个字符不知道怎么写,比如你看别人的代码中有个 $\zeta$ 不知道怎么写,你只需要在Julia REPL 中输入 ? 然后在后面粘贴那个字符即可。
有一些编程语言会为编译器或者编辑器定义一些常量以及函数,这些常量或函数一般不允许用户修改,但是Julia可以,如果你明确知道自己在做什么,那么这个操作可以帮助你的程序更好更符合你想象的方式进行,但是如果你还是个新手,建议不要随意修改内置常量或函数,因为你很有可能忘记自己修改过这个常量或函数,而在别的部分再次当做原始功能使用,就会造成很隐蔽的bug。
julia> pi = 3
3
julia> pi
3
julia> sqrt = 4
4
但是如果这个常量或函数先被使用,而你在之后尝试重新定义或者修改,那么Julia就会抛出错误:
julia> pi
π = 3.1415926535897...
julia> pi = 3
ERROR: cannot assign variable MathConstants.pi from module Main
julia> sqrt(100)
10.0
julia> sqrt = 4
ERROR: cannot assign variable Base.sqrt from module Main
变量名的命名规则:
+ 这类操作符也是可以用作标识符的,但是这种用法非常特殊,比如再从新定义加法操作的时候,加法操作就是用(+) 来定义的,(+)=f 就是重新定义加法操作(更过详细的Unicode参考4)if,else这类关键字用作变量名:julia> else = false
ERROR: syntax: unexpected "else"
julia> try = "No"
ERROR: syntax: unexpected "="命名风格不是语法内容,这些内容是一些常见的比较利于编程的习惯,如果你有自己的更好的习惯,也可以用你的方法来写,但是代码的作用一是为了驱动程序,得出我们想要的结果,第二则是让别人了解你的思想,如果大家都看不懂你的什么,那么这个代码其实是不成功的。
常见的命名风格有以下几条:
_ 分开,但一般不要使用,除非这个变量名特别长,且不好读。Types或者Modules的名字以大写字母开头,每个单词首字母大写,用驼峰形式代替下划线functions或者macros用小写形式,不要使用下划线。function如果要对其参数进行写的操作的话,函数名后面要加!,这种函数叫做 “变异函数”(mutating)或者“取代函数”(in-place)因为这种函数不只返回一个结果,还会在过程中修改参数的值。本文介绍了Julia变量和简单的命名风格,好的编程风格是很重要的,无论对于编码还是调试。
此内容由惯性聚合(RSS阅读器)自动聚合整理,仅供阅读参考。 原文来自 — 版权归原作者所有。