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
类型/模块 驼峰命名 MyTypeMyModule
小写,无下划线 @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 关键字用途 #

关键字 用途
beginend 代码块
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

十一、总结 #

本章我们学习了:

  1. 程序结构:表达式、语句分隔、代码块
  2. 注释:单行、多行、文档字符串
  3. 标识符:命名规则和约定
  4. 关键字:保留字及其用途
  5. 运算符:各类运算符的使用
  6. 代码风格:缩进、空格、命名规范
  7. Unicode支持:数学符号和特殊字符

掌握这些基础知识后,让我们继续学习Julia的数据类型!

最后更新:2026-03-27