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")
十、总结 #
本章我们学习了:
- 运行Julia程序:使用
julia命令运行脚本 - REPL交互环境:多种模式和快捷键
- 输出函数:println、print、printstyled
- 字符串插值:使用
$和$(...) - 用户输入:readline和parse
- 命令行参数:ARGS数组
- 调试技巧:@show、dump、@infiltrate
现在你已经能够编写简单的Julia程序了!接下来让我们学习Julia的数据类型。
最后更新:2026-03-27