Hello World #

一、第一个Julia程序 #

让我们从经典的"Hello World"开始Julia之旅!

1.1 最简单的方式 #

打开终端,输入:

bash
julia -e 'println("Hello, World!")'

输出:

text
Hello, World!

1.2 创建脚本文件 #

创建文件 hello.jl

julia
println("Hello, World!")

运行脚本:

bash
julia hello.jl

1.3 可执行脚本 #

创建文件 hello.jl

julia
#!/usr/bin/env julia

println("Hello, World!")

添加执行权限(Linux/macOS):

bash
chmod +x hello.jl
./hello.jl

二、REPL交互式环境 #

REPL(Read-Eval-Print Loop)是Julia的交互式命令行环境。

2.1 启动REPL #

bash
julia

输出:

text
               _
   _       _ _(_)_     |  Documentation: https://docs.julialang.org
  (_)     | (_) (_)    |   Type "?" for help, "]?" for Pkg help.
  _ _   _| |  __ _     |
 | | | | | | |/ _` |    |
 | | |_| | | | (_| |    |  Version 1.10.0 (2023-12-25)
 _/ |\__'_|_|_|\__'_|   |
|__/                   |

julia>

2.2 在REPL中执行代码 #

julia
julia> println("Hello, World!")
Hello, World!

julia> 1 + 2
3

julia> x = 10
10

julia> x * 2
20

2.3 REPL模式 #

REPL有多种模式:

模式 提示符 进入方式 用途
Julian julia> 默认 执行Julia代码
Help help?> ? 查看帮助
Pkg pkg> ] 包管理
Shell shell> ; 执行shell命令

示例:

julia
julia> ?

help?> println
search: println printstyled print sprint isprint

  println([io::IO], xs...)

  Print xs to io followed by a newline. If io is not supplied, print to stdout.

julia> ]

pkg> status

julia> ;

shell> ls
hello.jl

按退格键或Ctrl+C返回Julian模式。

2.4 REPL快捷键 #

快捷键 功能
/ 浏览历史命令
Ctrl+C 取消当前输入
Ctrl+D 退出REPL
Ctrl+L 清屏
Tab 自动补全
Ctrl+R 搜索历史

2.5 ans变量 #

REPL中,ans存储上一个表达式的结果:

julia
julia> 1 + 2
3

julia> ans
3

julia> ans * 2
6

三、输出函数 #

3.1 println #

println输出内容并换行:

julia
println("Hello")
println("World")

输出:

text
Hello
World

3.2 print #

print输出内容不换行:

julia
print("Hello")
print(" ")
print("World")

输出:

text
Hello World

3.3 show #

show输出对象的字符串表示:

julia
show("Hello")
show([1, 2, 3])

3.4 display #

display以最佳方式显示对象:

julia
display([1, 2, 3])
display(Dict(:a => 1, :b => 2))

3.5 printstyled #

printstyled输出带样式的文本:

julia
printstyled("Error!", color=:red, bold=true)
printstyled("Warning!", color=:yellow)
printstyled("Success!", color=:green)

可用颜色::black:red:green:yellow:blue:magenta:cyan:white

3.6 格式化输出 #

使用printf风格的格式化:

julia
using Printf

@printf("Integer: %d\n", 42)
@printf("Float: %.2f\n", 3.14159)
@printf("String: %s\n", "Julia")
@printf("Width: %10d\n", 42)

四、字符串插值 #

4.1 基本插值 #

使用$进行字符串插值:

julia
name = "Julia"
println("Hello, $name!")

x = 10
y = 20
println("x + y = $(x + y)")

4.2 表达式插值 #

使用$(...)插入表达式:

julia
a = 5
b = 3
println("a + b = $(a + b)")
println("a^2 + b^2 = $(a^2 + b^2)")

4.3 转义字符 #

julia
println("Hello\nWorld")
println("Tab:\tHere")
println("Quote: \"Hello\"")
println("Backslash: \\")
println("Dollar: \$")

五、获取用户输入 #

5.1 readline #

readline从标准输入读取一行:

julia
print("请输入你的名字: ")
name = readline()
println("你好, $name!")

5.2 读取数字 #

julia
print("请输入一个数字: ")
num = parse(Int, readline())
println("你输入的数字是: $num")
println("它的两倍是: $(num * 2)")

5.3 读取多行 #

julia
println("请输入多行文本(输入空行结束):")
lines = String[]
while true
    line = readline()
    if isempty(line)
        break
    end
    push!(lines, line)
end
println("你输入了 $(length(lines)) 行")

5.4 完整示例 #

julia
println("=== 简单计算器 ===")

print("请输入第一个数字: ")
a = parse(Float64, readline())

print("请输入运算符 (+, -, *, /): ")
op = readline()

print("请输入第二个数字: ")
b = parse(Float64, readline())

result = if op == "+"
    a + b
elseif op == "-"
    a - b
elseif op == "*"
    a * b
elseif op == "/"
    a / b
else
    "未知运算符"
end

println("结果: $a $op $b = $result")

六、命令行参数 #

6.1 ARGS #

ARGS数组存储命令行参数:

julia
println("参数个数: $(length(ARGS))")
println("参数列表: $(join(ARGS, ", "))")

for (i, arg) in enumerate(ARGS)
    println("参数$i: $arg")
end

运行:

bash
julia args.jl hello world 123

输出:

text
参数个数: 3
参数列表: hello, world, 123
参数1: hello
参数2: world
参数3: 123

6.2 参数处理示例 #

julia
if isempty(ARGS)
    println("用法: julia greet.jl 名字1 名字2 ...")
    exit(1)
end

for name in ARGS
    println("你好, $name!")
end

6.3 使用ArgParse包 #

对于复杂的命令行参数解析,可以使用ArgParse包:

julia
using ArgParse

function parse_commandline()
    s = ArgParseSettings()

    @argparse s begin
        "--name", "-n"
            help = "your name"
            required = true
        "--verbose", "-v"
            help = "verbose output"
            action = :store_true
    end

    return parse_args(s)
end

args = parse_commandline()
println("Hello, $(args["name"])!")

七、退出程序 #

7.1 exit #

exit正常退出程序:

julia
if condition
    exit()
end

exit(0)

7.2 exit(code) #

带退出码退出:

julia
exit(0)
exit(1)

7.3 atexit #

atexit注册程序退出时执行的函数:

julia
atexit(() -> println("程序即将退出"))

println("程序运行中")

八、调试技巧 #

8.1 使用println调试 #

julia
function calculate(a, b)
    println("a = $a, b = $b")
    result = a * b
    println("result = $result")
    return result
end

8.2 使用@show #

@show宏可以显示表达式和值:

julia
x = 10
y = 20
@show x + y

输出:

text
x + y = 30

8.3 使用dump #

dump显示对象的内部结构:

julia
dump([1, 2, 3])
dump(Dict(:a => 1, :b => 2))

8.4 使用@debug #

julia
@debug "调试信息" x = 10 y = 20

需要设置日志级别:

julia
using Logging
global_logger(ConsoleLogger(stderr, Logging.Debug))

8.5 使用Infiltrator.jl #

安装调试器:

julia
using Pkg
Pkg.add("Infiltrator")

使用断点:

julia
using Infiltrator

function debug_example(x)
    y = x * 2
    @infiltrate
    return y + 1
end

程序会在@infiltrate处暂停,进入调试模式。

九、实践练习 #

9.1 练习1:问候程序 #

创建一个程序,询问用户姓名和年龄,输出问候语:

julia
print("请输入你的姓名: ")
name = readline()

print("请输入你的年龄: ")
age = parse(Int, readline())

println("你好, $name!你今年$age岁。")
println("明年你将$(age + 1)岁。")

9.2 练习2:温度转换 #

创建一个温度转换程序:

julia
print("请输入温度值: ")
temp = parse(Float64, readline())

print("请输入单位 (C/F): ")
unit = uppercase(readline())

if unit == "C"
    fahrenheit = temp * 9 / 5 + 32
    println("$temp°C = $(round(fahrenheit, digits=2))°F")
elseif unit == "F"
    celsius = (temp - 32) * 5 / 9
    println("$temp°F = $(round(celsius, digits=2))°C")
else
    println("未知单位")
end

9.3 练习3:猜数字游戏 #

julia
target = rand(1:100)
guesses = 0

println("猜数字游戏 (1-100)")

while true
    print("请输入你的猜测: ")
    guess = parse(Int, readline())
    global guesses += 1

    if guess == target
        println("恭喜你猜对了!用了$guesses次")
        break
    elseif guess < target
        println("太小了,再试试")
    else
        println("太大了,再试试")
    end
end

9.4 练习4:命令行计算器 #

julia
if length(ARGS) != 3
    println("用法: julia calc.jl 数字1 运算符 数字2")
    exit(1)
end

a = parse(Float64, ARGS[1])
op = ARGS[2]
b = parse(Float64, ARGS[3])

result = if op == "+"
    a + b
elseif op == "-"
    a - b
elseif op == "*"
    a * b
elseif op == "/"
    a / b
else
    println("未知运算符: $op")
    exit(1)
end

println("$a $op $b = $result")

十、总结 #

本章我们学习了:

  1. 运行Julia程序:使用julia命令运行脚本
  2. REPL交互环境:多种模式和快捷键
  3. 输出函数:println、print、printstyled
  4. 字符串插值:使用$$(...)
  5. 用户输入:readline和parse
  6. 命令行参数:ARGS数组
  7. 调试技巧:@show、dump、@infiltrate

现在你已经能够编写简单的Julia程序了!接下来让我们学习Julia的数据类型。

最后更新:2026-03-27