Julia 教程

Julia 教程(中文版)

Julia 是一门高性能的动态编程语言,特别适合科学计算、数据分析、机器学习等领域。它结合了 Python 的易用性和 C 的速度。本教程从零基础开始,逐步带你掌握 Julia 的核心概念。


1. 安装 Julia

下载与安装

  1. 访问官网:https://julialang.org/downloads/
  2. 选择适合你操作系统的版本(Windows / macOS / Linux)
  3. 下载并安装

启动 Julia

  • 命令行:打开终端,输入 julia 进入 REPL(交互式环境)
  • 推荐编辑器
  • VS Code + Julia 插件(最推荐)
  • Juno(基于 Atom)
  • Jupyter Notebook(通过 IJulia

2. 第一个程序:Hello World

println("Hello, Julia!")

在 REPL 中直接输入,或保存为 hello.jl 文件,然后运行:

julia hello.jl

3. 基本语法

变量与类型

x = 10          # 整型 Int64
y = 3.14        # 浮点型 Float64
name = "Julia"  # 字符串
flag = true     # 布尔值

# 显式指定类型
a::Int = 5
b::Float64 = 2.0

Julia 是动态类型,但支持类型注解以提升性能。

基本运算

5 + 3      # 8
10 / 3     # 3.333...
10 ÷ 3     # 3(整除,使用 ÷,即 \div + Tab)
10 % 3     # 1
2^3        # 8

字符串

s1 = "Hello"
s2 = "World"
greeting = "$s1, $s2!"  # 字符串插值 → "Hello, World!"

# 多行字符串
poem = """
床前明月光,
疑是地上霜。
"""

4. 控制流

条件语句

x = 10
if x > 0
    println("正数")
elseif x < 0
    println("负数")
else
    println("零")
end

循环

# for 循环
for i in 1:5
    println(i)
end

# while 循环
i = 1
while i <= 5
    println(i)
    i += 1
end

5. 容器类型

数组(Array)

arr = [1, 2, 3, 4, 5]
matrix = [1 2 3; 4 5 6]  # 2×3 矩阵

push!(arr, 6)        # 添加元素 → [1,2,3,4,5,6]
arr[1]               # 索引从 1 开始!→ 1
arr[2:4]             # 切片 → [2,3,4]

# 多维数组
A = rand(3, 3)       # 3×3 随机矩阵

元组(Tuple)——不可变

t = (1, "hello", 3.14)
t[1] = 2  # 错误!不可修改

字典(Dict)

dict = Dict("name" => "Julia", "version" => 1.9)
dict["name"]         # "Julia"
haskey(dict, "age")  # false

集合(Set)

s = Set([1, 2, 2, 3])  # {1, 2, 3}

6. 函数

定义函数

function add(x, y)
    return x + y
end

# 简洁写法
add(x, y) = x + y

# 匿名函数
f = x -> x^2

多重派发(Multiple Dispatch)—— Julia 核心特性

greet(name::String) = println("Hello, $name!")
greet(num::Int) = println("Number: $num")

greet("Alice")  # Hello, Alice!
greet(42)       # Number: 42

7. 包管理(Pkg)

Julia 自带强大的包管理器。

using Pkg

# 进入 Pkg 模式(按 ])
# 添加包
Pkg.add("Plots")
Pkg.add("DataFrames")

# 使用包
using Plots
plot(rand(10))

常用包:

功能包名
绘图Plots, PyPlot
数据处理DataFrames, CSV
线性代数LinearAlgebra(内置)
机器学习Flux
统计Statistics(内置)

8. 性能技巧

类型稳定(Type Stability)

# 好:类型稳定
function sum_positive(arr::Vector{Int})
    s = 0
    for x in arr
        if x > 0
            s += x
        end
    end
    return s
end

# 坏:返回类型不一致
bad(x) = x > 0 ? x : "negative"  # 返回 Int 或 String

使用 @. 向量化

x = [1, 2, 3]
y = sin.(x)  # 对每个元素应用 sin

预分配数组

result = zeros(1000)  # 预分配
for i in 1:1000
    result[i] = i^2
end

9. 宏(Macros)

@time sleep(1)        # 计时
@show x               # 显示变量名和值
@which sin(3.14)      # 查看函数定义位置

10. 示例:求斐波那契数列

function fib(n)
    if n <= 1
        return n
    end
    a, b = 0, 1
    for i in 2:n
        a, b = b, a + b
    end
    return b
end

println(fib(10))  # 55

学习资源推荐

资源链接
官方文档https://docs.julialang.org
Julia 中文社区https://discourse.juliacn.com
视频教程Bilibili 搜索 “Julia 教程”
书籍Julia Programming for Data Science

小练习

  1. 写一个函数判断素数
  2. 读取 CSV 文件并画图(使用 CSV.jlPlots.jl
  3. 实现一个简单的线性回归

恭喜!你已掌握 Julia 基础!

继续深入:

  • 元编程(Metaprogramming)
  • 并行计算(@threads, Distributed
  • GPU 编程(CUDA.jl
  • 构建自己的包

需要我为你生成 完整项目示例(如数据分析、机器学习模型)吗?欢迎继续提问!🚀

文章已创建 2305

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

相关文章

开始在上面输入您的搜索词,然后按回车进行搜索。按ESC取消。

返回顶部