Julia 变量
像其他动态语言一样,Julia不需要遵守先定义后使用这个规则,可以直接使用。例如
julia> x=10
10
julia> x="hello"
"hello"
Julia 变量名支持中文,但是不推荐大家这样做。
Julia 变量命名规则
必须遵守规则
- 变量名字必须以英文字母(A-Z 或 a-z)、下划线或编码大于 00A0 的 Unicode 字符的一个子集开头。具体来说指的是,Unicode字符分类中的 Lu/Ll/Lt/Lm/Lo/Nl(字母)、Sc/So(货币和其他符号)以及一些其它像字母的符号(例如 Sm 类别数学符号中的一部分)。
- 变量名的非首字符还允许使用惊叹号
!
、数字(包括 0-9 和其他 Nd/No 类别中的 Unicode 字符)以及其它 Unicode 字符:变音符号和其他修改标记(Mn/Mc/Me/Sk 类别)、标点和连接符(Pc 类别)、引号和少许其他字符。
建议规则
虽然 Julia 语言对合法名字的限制非常少,但是遵循以下这些命名规范是非常有用的:
- 变量名尽量小写;
- 类型和模块名首字母大写,单词建使用驼峰式(Camel-Case)分割;
- 在几个单词不易区分时,才以 _ 分割,一般不鼓励使用下划线 _;
- 函数名和宏名使用小写字母,不使用下划线;
- 修改参数的函数结尾使用 !,这样的函数被称为 mutating functions 或者 in-place functions。
整数和浮点数
整数和浮点值是算术和计算的基础。这些数值的内置表示被称作原始数值类型(numeric primitive),且整数和浮点数在代码中作为立即数时称作数值字面量(numeric literal)。例如,1
是个整型字面量,1.0
是个浮点型字面量,它们在内存中作为对象的二进制表示就是原始数值类型。
Julia 提供了很丰富的原始数值类型,并基于它们定义了一整套算术操作,还提供按位运算符以及一些标准数学函数。
整数类型
在 Julia 整数字面量以标准形式表示。整型字面量的默认类型取决于目标系统是 32 位还是 64 位架构。
# 32 位系统:
julia> typeof(1)
Int32
# 64 位系统:
julia> typeof(1)
Int64
Julia 的内置变量 Sys.WORD_SIZE
表明了目标系统是 32 位还是 64 位架构:
# 32 位系统:
julia> Sys.WORD_SIZE
32
# 64 位系统:
julia> Sys.WORD_SIZE
64
浮点类型
特殊的浮点值
机器精度
大多数实数都无法用浮点数准确地表示,因此有必要知道两个相邻可表示的浮点数间的距离。它通常被叫做机器精度。
Julia 提供了 eps
函数,它可以给出 1.0
与下一个 Julia 能表示的浮点数之间的差值:
julia> eps(Float32)
1.1920929f-7
julia> eps(Float64)
2.220446049250313e-16
julia> eps() # 与 eps(Float64) 相同
2.220446049250313e-16