Hello World #

一、第一个Swift程序 #

让我们从经典的"Hello World"开始Swift编程之旅。

1.1 最简单的程序 #

swift
print("Hello, World!")

这就是一个完整的Swift程序!相比其他语言,Swift的Hello World非常简洁,不需要导入额外的库,不需要main函数。

1.2 程序入口 #

Swift程序的入口是顶层代码:

swift
print("程序开始")

func greet() {
    print("Hello!")
}

greet()

print("程序结束")

二、运行Swift程序 #

2.1 使用REPL #

REPL(Read-Eval-Print-Loop)是Swift的交互式环境:

bash
$ swift
Welcome to Apple Swift version 5.9.
Type :help for assistance.
  1> print("Hello, World!")
Hello, World!
  2> let name = "Swift"
name: String = "Swift"
  3> print("Welcome to \(name)!")
Welcome to Swift!
  4> :quit

常用REPL命令:

  • :help - 显示帮助
  • :quit - 退出REPL
  • :clear - 清屏
  • :load 文件名 - 加载文件

2.2 使用swift命令 #

创建文件 hello.swift

swift
print("Hello, World!")

直接运行:

bash
swift hello.swift

2.3 编译运行 #

编译为可执行文件:

bash
swiftc hello.swift -o hello
./hello

2.4 使用Swift Package Manager #

创建项目:

bash
mkdir HelloPackage
cd HelloPackage
swift package init --type executable

编辑 Sources/main.swift

swift
print("Hello, World!")

运行:

bash
swift run

三、Playground #

Playground是Swift的交互式编程环境,可以实时查看代码执行结果。

3.1 Xcode Playground #

  1. 打开Xcode
  2. File -> New -> Playground
  3. 选择"Blank"模板
  4. 编写代码
swift
import UIKit

var str = "Hello, playground"
print(str)

str = "Hello, Swift!"
print(str)

3.2 Playground特性 #

实时结果显示 #

swift
let numbers = [1, 2, 3, 4, 5]
let doubled = numbers.map { $0 * 2 }
let sum = numbers.reduce(0, +)

右侧会实时显示:

  • numbers = [1, 2, 3, 4, 5]
  • doubled = [2, 4, 6, 8, 10]
  • sum = 15

可视化 #

swift
import SwiftUI

struct ContentView: View {
    var body: some View {
        VStack {
            Text("Hello, SwiftUI!")
                .font(.largeTitle)
                .padding()
            Image(systemName: "swift")
                .font(.system(size: 60))
                .foregroundColor(.blue)
        }
    }
}

PlaygroundPage.current.setLiveView(ContentView())

3.3 Playground页面管理 #

swift
import PlaygroundSupport

PlaygroundPage.current.finishExecution()
PlaygroundPage.current.needsIndefiniteExecution = true

四、print函数详解 #

print 是最常用的输出函数。

4.1 基本用法 #

swift
print("Hello, World!")
print(42)
print(3.14)
print(true)

4.2 多参数 #

swift
print("Hello", "World", "Swift")
print(1, 2, 3, 4, 5)

4.3 分隔符 #

swift
print("A", "B", "C", separator: "-")
print(1, 2, 3, separator: ", ")

输出:

text
A-B-C
1, 2, 3

4.4 终止符 #

swift
print("第一行", terminator: "\n")
print("第二行", terminator: "")
print("继续")
print("结束", terminator: "---")

输出:

text
第一行
第二行继续结束---

4.5 字符串插值 #

swift
let name = "Swift"
let version = 5.9
let year = 2014

print("欢迎学习 \(name) \(version)!")
print("Swift诞生于\(year)年")
print("明年是\(year + 1)年")

4.6 格式化输出 #

swift
let pi = 3.14159265359
print(String(format: "π = %.2f", pi))

let price = 99.99
print(String(format: "价格: ¥%.2f", price))

let hex = 255
print(String(format: "十六进制: 0x%02X", hex))

五、基本输入 #

5.1 读取用户输入 #

swift
print("请输入你的名字:")
if let name = readLine() {
    print("你好,\(name)!")
}

5.2 读取数字 #

swift
print("请输入一个数字:")
if let input = readLine(), let number = Int(input) {
    print("你输入的数字是: \(number)")
    print("它的平方是: \(number * number)")
} else {
    print("输入无效")
}

5.3 完整示例 #

swift
print("=== 简单计算器 ===")
print("请输入第一个数字:")
guard let input1 = readLine(),
      let num1 = Double(input1) else {
    print("输入无效")
    exit(1)
}

print("请输入第二个数字:")
guard let input2 = readLine(),
      let num2 = Double(input2) else {
    print("输入无效")
    exit(1)
}

print("请输入运算符 (+, -, *, /):")
guard let op = readLine() else {
    print("输入无效")
    exit(1)
}

var result: Double = 0
switch op {
case "+":
    result = num1 + num2
case "-":
    result = num1 - num2
case "*":
    result = num1 * num2
case "/":
    result = num1 / num2
default:
    print("无效的运算符")
    exit(1)
}

print("结果: \(num1) \(op) \(num2) = \(result)")

六、命令行参数 #

6.1 获取命令行参数 #

swift
let arguments = CommandLine.arguments

print("程序名: \(arguments[0])")
print("参数数量: \(arguments.count)")

for (index, arg) in arguments.enumerated() {
    print("参数[\(index)]: \(arg)")
}

6.2 参数处理示例 #

swift
let args = CommandLine.arguments

if args.count < 2 {
    print("用法: swift main.swift <名字>")
    exit(1)
}

let name = args[1]
print("你好,\(name)!")

运行:

bash
swift main.swift 张三

七、调试技巧 #

7.1 断言 #

swift
let age = 25
assert(age >= 0, "年龄不能为负数")
assert(age < 150, "年龄不合理")

7.2 先决条件 #

swift
func divide(_ a: Int, by b: Int) -> Int {
    precondition(b != 0, "除数不能为零")
    return a / b
}

7.3 致命错误 #

swift
func mustImplement() {
    fatalError("子类必须实现此方法")
}

7.4 调试输出 #

swift
let value = 42
debugPrint("调试信息: \(value)")
dump(value)

八、实战练习 #

8.1 个人信息展示 #

swift
let name = "张三"
let age = 25
let city = "北京"
let job = "iOS开发工程师"

print("=== 个人信息 ===")
print("姓名: \(name)")
print("年龄: \(age)岁")
print("城市: \(city)")
print("职业: \(job)")
print("===============")

8.2 简单数学运算 #

swift
let a = 10
let b = 3

print("数字: \(a) 和 \(b)")
print("加法: \(a) + \(b) = \(a + b)")
print("减法: \(a) - \(b) = \(a - b)")
print("乘法: \(a) × \(b) = \(a * b)")
print("除法: \(a) ÷ \(b) = \(Double(a) / Double(b))")
print("取余: \(a) % \(b) = \(a % b)")

8.3 时间显示 #

swift
import Foundation

let now = Date()
let formatter = DateFormatter()
formatter.dateFormat = "yyyy年MM月dd日 HH:mm:ss"

print("当前时间: \(formatter.string(from: now))")

九、总结 #

本章学习了:

  • 程序结构:Swift程序的组成和入口
  • 运行方式:REPL、swift命令、编译、SPM
  • Playground:交互式编程环境
  • 输入输出:print函数和readLine
  • 调试技巧:断言和错误处理

关键要点:

  • Swift程序简洁,不需要main函数
  • Playground适合学习和实验
  • print函数支持多种输出格式
  • 使用字符串插值简化输出

下一章,我们将学习Swift的数据类型!

最后更新:2026-03-26