Julia语法基础 #
一、程序结构 #
1.1 基本结构 #
Julia程序由表达式组成,每个表达式可以是一个值、变量、函数调用或控制结构。
julia
println("Hello, Julia!")
x = 10
y = 20
z = x + y
println("Sum: $z")
1.2 语句分隔 #
Julia使用换行符分隔语句,也可以使用分号:
julia
a = 1
b = 2
c = a + b
a = 1; b = 2; c = a + b
分号还可以抑制输出:
julia
julia> x = 10
10
julia> x = 10;
1.3 代码块 #
代码块使用end关键字结束:
julia
if x > 0
println("Positive")
end
function greet(name)
println("Hello, $name")
end
for i in 1:5
println(i)
end
二、注释 #
2.1 单行注释 #
使用#开始单行注释:
julia
x = 10
x = 10 + 5
2.2 多行注释 #
使用#= ... =#进行多行注释:
julia
#=
这是一个多行注释
可以跨越多行
非常方便
=#
x = 10
2.3 嵌套注释 #
Julia支持嵌套注释:
julia
#=
外层注释开始
#=
内层注释
=#
外层注释结束
=#
2.4 文档字符串 #
使用三引号创建文档字符串:
julia
"""
greet(name)
向指定名字的人打招呼。
# 参数
- `name::String`: 要打招呼的人的名字
# 示例
```julia
greet("Julia")
“”" function greet(name) println(“Hello, $name!”) end
text
查看文档:
```julia
?greet
三、标识符 #
3.1 命名规则 #
Julia标识符必须以字母、下划线或Unicode字符开头,后续可以包含字母、数字、下划线和部分Unicode字符。
julia
x = 1
_name = 2
变量 = 3
α = 4
3.2 命名约定 #
Julia有一套命名约定:
| 类型 | 约定 | 示例 |
|---|---|---|
| 变量 | 小写,下划线分隔 | my_variable |
| 常量 | 大写,下划线分隔 | MY_CONSTANT |
| 函数 | 小写,无下划线 | myfunction |
| 类型/模块 | 驼峰命名 | MyType、MyModule |
| 宏 | 小写,无下划线 | @my_macro |
| 修改参数的函数 | 以!结尾 |
push!、sort! |
3.3 特殊命名 #
julia
x = 10
δ = 0.001
function ∑(arr)
sum(arr)
end
struct 🐱
name::String
end
3.4 避免使用的名称 #
以下名称有特殊含义,应避免作为变量名:
julia
ans
四、关键字 #
4.1 完整关键字列表 #
Julia保留以下关键字:
text
abstract type baremodule begin break catch
const continue do else elseif
end export finally for function
global if import in let
local macro module mutable struct
outer quote return struct try
using where while
4.2 关键字用途 #
| 关键字 | 用途 |
|---|---|
begin … end |
代码块 |
if / elseif / else / end |
条件语句 |
while / for / end |
循环语句 |
function / end |
函数定义 |
struct / mutable struct / end |
类型定义 |
module / end |
模块定义 |
try / catch / finally / end |
异常处理 |
return |
返回值 |
break / continue |
循环控制 |
import / using / export |
模块导入导出 |
const |
常量定义 |
macro / end |
宏定义 |
quote / end |
表达式引用 |
let / end |
局部作用域 |
4.3 关键字示例 #
julia
if x > 0
println("Positive")
elseif x < 0
println("Negative")
else
println("Zero")
end
for i in 1:10
if i % 2 == 0
continue
end
println(i)
end
try
error("Something went wrong")
catch e
println("Caught: $e")
finally
println("Cleanup")
end
五、运算符 #
5.1 算术运算符 #
julia
+ - * / ÷ \ ^ %
示例:
julia
1 + 2
10 - 3
4 * 5
10 / 3
10 ÷ 3
10 \ 3
2 ^ 10
10 % 3
5.2 比较运算符 #
julia
== != < > <= >=
示例:
julia
1 == 1
1 != 2
1 < 2
2 > 1
1 <= 1
1 >= 1
5.3 逻辑运算符 #
julia
! && ||
示例:
julia
!true
true && false
true || false
5.4 位运算符 #
julia
~ & | ⊻ >>> >> <<
5.5 赋值运算符 #
julia
= += -= *= /= ÷= %= ^= &= |= ⊻= >>= <<=
5.6 特殊运算符 #
julia
x -> x^2
1:10
[1, 2, 3]
六、字面量 #
6.1 数字字面量 #
julia
42
0b1010
0o755
0xFF
3.14
1.0e10
1.0f-10
6.2 字符串字面量 #
julia
"Hello, Julia!"
"""
多行
字符串
"""
6.3 字符字面量 #
julia
'A'
'中'
'\u2200'
6.4 布尔字面量 #
julia
true
false
6.5 数组和元组字面量 #
julia
[1, 2, 3]
[1 2; 3 4]
(1, 2, 3)
(a=1, b=2)
七、表达式 #
7.1 简单表达式 #
julia
x + y
f(x, y)
a[i]
obj.field
7.2 复合表达式 #
使用begin或;:
julia
z = begin
x = 1
y = 2
x + y
end
z = (x = 1; y = 2; x + y)
7.3 三元表达式 #
julia
condition ? value_if_true : value_if_false
x > 0 ? "Positive" : "Non-positive"
7.4 短路求值 #
julia
condition && expression
condition || expression
x > 0 && println("Positive")
x < 0 || println("Non-negative")
八、代码风格指南 #
8.1 缩进 #
使用4个空格缩进:
julia
function myfunction(x)
if x > 0
return x
else
return -x
end
end
8.2 行宽 #
建议每行不超过92个字符。
8.3 空格使用 #
julia
x = 1 + 2
arr[1:3]
func(arg1, arg2)
MyType{Int}
x == y
8.4 空行使用 #
- 函数之间空一行
- 逻辑块之间空一行
- 文件末尾空一行
julia
function foo()
return 1
end
function bar()
return 2
end
8.5 模块结构 #
julia
module MyModule
using PackageA
using PackageB
export public_function, PublicType
const CONSTANT = 100
struct PublicType
field1::Int
field2::String
end
function public_function(x)
return _private_helper(x)
end
function _private_helper(x)
return x * 2
end
end
九、Unicode支持 #
9.1 Unicode变量名 #
Julia完全支持Unicode:
julia
α = 1
β = 2
γ = α + β
δx = 0.001
δy = 0.002
∑(arr) = sum(arr)
∏(arr) = prod(arr)
9.2 数学符号输入 #
在REPL或支持Julia的编辑器中,可以使用LaTeX风格的输入:
| 输入 | 符号 | 含义 |
|---|---|---|
\alpha + Tab |
α | alpha |
\beta + Tab |
β | beta |
\gamma + Tab |
γ | gamma |
\delta + Tab |
δ | delta |
\pi + Tab |
π | pi |
\sum + Tab |
∑ | 求和 |
\in + Tab |
∈ | 属于 |
\notin + Tab |
∉ | 不属于 |
\sqrt + Tab |
√ | 平方根 |
\leq + Tab |
≤ | 小于等于 |
\geq + Tab |
≥ | 大于等于 |
\neq + Tab |
≠ | 不等于 |
\approx + Tab |
≈ | 约等于 |
9.3 Unicode运算符 #
julia
1 ≤ 2
3 ≥ 2
1 ≠ 2
π ≈ 3.14159
√4
十、实践练习 #
10.1 练习1:变量命名 #
创建符合命名规范的变量:
julia
my_variable = 10
MY_CONSTANT = 100
function calculateSum(a, b)
return a + b
end
struct PersonInfo
name::String
age::Int
end
10.2 练习2:注释使用 #
为以下代码添加适当的注释:
julia
"""
fibonacci(n)
计算第n个斐波那契数。
# 参数
- `n::Int`: 斐波那契数列的索引
# 返回
第n个斐波那契数
"""
function fibonacci(n)
if n <= 1
return n
end
return fibonacci(n - 1) + fibonacci(n - 2)
end
10.3 练习3:代码风格 #
按照Julia风格指南重构代码:
julia
function badstyle(x,y,z)
if x>0
return y+z
else
return y-z
end
end
function good_style(x, y, z)
if x > 0
return y + z
else
return y - z
end
end
十一、总结 #
本章我们学习了:
- 程序结构:表达式、语句分隔、代码块
- 注释:单行、多行、文档字符串
- 标识符:命名规则和约定
- 关键字:保留字及其用途
- 运算符:各类运算符的使用
- 代码风格:缩进、空格、命名规范
- Unicode支持:数学符号和特殊字符
掌握这些基础知识后,让我们继续学习Julia的数据类型!
最后更新:2026-03-27