查缺补漏

为了避免你遗漏一些重要的细节,在正式进入语言进阶或就此停止前,这里进行一些补充:

加载代码

可以通过 include(路径) 加载一个路径下的代码,如使用 include("foo.jl") 导入相对路径下 foo.jl 中的代码。这类似于 C 中的 #include ""

这种加载效果可以理解为:把对应文件中的代码复制到 include 所在位置,因此显然也是有返回值的。

...

... 语法除在函数定义时表示不定参数外,还可表示将可以遍历的东西展开

julia> a = 1:3; b = [2, 3, 5];

julia> (a..., b...)
(1, 2, 3, 2, 3, 5)

julia> [a... b...]
1×6 Matrix{Int64}:
 1  2  3  2  3  5

julia> lcm(b...)
30

符号

Symbol 是一种类似于字符串的不可变类型,通常用于元编程或利用其不可变性提升性能。

其字面量可由以下方法得到:

julia> :p
:p

julia> Symbol(":")
:(:)

支持以下操作:

julia> String(:p)
"p"

julia> :p == :q
false

docstring

当你创建一个新的全局变量/函数/类型等时,可以在前面紧跟一个字符串,它会自动出现在帮助文档中

julia> "something" aaa=1
aaa

help?> aaa
search: aaa readavailable bytesavailable AbstractArray AbstractRange

  something

这种“前面紧跟”规则是预设的,也可以改变,可参阅关于代码文档的更多内容

docstring 支持 Markdown 格式。

变量引用机制

你可能已经意识到了,一些函数(通常末尾带 !)可以改变变量的值,而一些类型的实例却总是无法被改变的。关于这个,请参阅语言进阶 - 变量引用机制