HoRain云--Swift入门:从零掌握基础语法

张开发
2026/4/20 6:35:55 15 分钟阅读

分享文章

HoRain云--Swift入门:从零掌握基础语法
HoRain 云小助手个人主页⛺️生活的理想就是为了理想的生活!⛳️ 推荐前些天发现了一个超棒的服务器购买网站性价比超高大内存超划算忍不住分享一下给大家。点击跳转到网站。目录⛳️ 推荐Swift 基本语法详解一、基本结构1. Hello World 程序2. 注释二、变量与常量1. 变量 (var)2. 常量 (let)3. 命名规范三、基本数据类型1. 整型 (Int)2. 浮点型3. 布尔型 (Bool)4. 字符串 (String)5. 字符 (Character)四、可选类型 (Optionals)1. 声明可选类型2. 强制解包3. 可选绑定 (推荐)4. 空合并运算符五、集合类型1. 数组 (Array)2. 字典 (Dictionary)3. 集合 (Set)六、控制流1. if 语句2. switch 语句3. for 循环4. while 循环七、函数1. 基本函数定义2. 参数标签3. 默认参数值4. 返回多个值元组八、枚举 (Enum)九、类型别名十、错误处理学习建议Swift 基本语法详解Swift 是 Apple 开发的现代编程语言语法简洁、类型安全、性能优异。下面为您详细介绍 Swift 的基本语法适合初学者快速入门。一、基本结构1. Hello World 程序import UIKit // iOS开发 // 或 import Cocoa // macOS开发 print(Hello, World!)2. 注释// 单行注释 /* 多行注释 可以写多行内容 */ /// 文档注释用于生成文档二、变量与常量1. 变量 (var)值可以改变的存储容器// 显式声明类型 var age: Int 25 var name: String 张三 // 类型推断推荐 var score 95.5 // 自动推断为Double var isStudent true // 自动推断为Bool2. 常量 (let)值一旦设定就不能更改let pi 3.14159 let maxScore 100 let appName SwiftApp // 常量不能重新赋值 // pi 3.14 // 这会报错3. 命名规范使用驼峰命名法firstName,studentCount不能以数字开头但可以包含数字user1,item2可以使用 Unicode 字符let π 3.14159三、基本数据类型1. 整型 (Int)var intNum: Int 42 var int8Num: Int8 127 // 8位有符号整数 var int16Num: Int16 32767 // 16位有符号整数 var uintNum: UInt 100 // 无符号整数2. 浮点型var floatNum: Float 3.14 // 32位浮点数 var doubleNum: Double 3.1415926535 // 64位浮点数推荐 // 类型推断 var piValue 3.14159 // 自动推断为Double3. 布尔型 (Bool)var isSwift true var isJava false if isSwift { print(这是Swift语言) }4. 字符串 (String)var greeting Hello, Swift! var emptyString // 字符串拼接 var firstName 张 var lastName 三 var fullName firstName lastName // 张三 // 字符串插值 var age 25 var message 我今年 \(age) 岁 // 我今年25岁 // 多行字符串 var multilineString 这是多行字符串 可以包含多行内容 使用三个双引号包裹 5. 字符 (Character)var singleChar: Character A var chineseChar: Character 中 // 字符串与字符 var str Swift for char in str { print(char) // 逐个字符打印 }四、可选类型 (Optionals)Swift 的核心特性之一用于处理值可能缺失的情况1. 声明可选类型var optionalName: String? 张三 // 可能包含String也可能为nil var optionalAge: Int? nil // 明确设置为nil2. 强制解包var optionalValue: String? Hello print(optionalValue!) // 使用!强制解包如果为nil会崩溃3. 可选绑定 (推荐)if let name optionalName { print(名字是: \(name)) // name在if块内是String类型 } else { print(没有名字) }4. 空合并运算符var nickName: String? nil var realName 张三 var displayName nickName ?? realName // 如果nickName为nil使用realName五、集合类型1. 数组 (Array)// 显式声明 var numbers: [Int] [1, 2, 3, 4, 5] // 类型推断 var fruits [苹果, 香蕉, 橙子] // 空数组 var emptyArray [String]() // 访问元素 print(fruits[0]) // 苹果 // 修改元素 fruits[1] 葡萄 // 添加元素 fruits.append(西瓜) fruits [芒果, 菠萝]2. 字典 (Dictionary)// 显式声明 var scores: [String: Int] [张三: 95, 李四: 88] // 类型推断 var person [name: 张三, age: 25] // 空字典 var emptyDict [String: Int]() // 访问值 print(scores[张三]) // Optional(95) // 添加/修改值 scores[王五] 92 scores[张三] 98 // 修改现有值 // 删除值 scores[李四] nil3. 集合 (Set)// 声明集合 var fruitsSet: SetString [苹果, 香蕉, 橙子] var numbersSet Set([1, 2, 3, 2, 1]) // 自动去重 // 添加元素 fruitsSet.insert(葡萄) // 删除元素 fruitsSet.remove(香蕉) // 检查包含 if fruitsSet.contains(苹果) { print(包含苹果) }六、控制流1. if 语句var temperature 25 if temperature 30 { print(很热) } else if temperature 20 { print(舒适) // 这个分支会被执行 } else { print(有点冷) } // 条件可以不加括号 if temperature 20 { print(温度适宜) }2. switch 语句var grade A switch grade { case A: print(优秀) case B: print(良好) case C: print(及格) default: print(不及格) } // 支持多种匹配模式 var value 5 switch value { case 1, 2, 3: print(1-3之间) case 4...6: // 区间匹配 print(4-6之间) // 这个分支会被执行 default: print(其他值) }3. for 循环// 遍历数组 var fruits [苹果, 香蕉, 橙子] for fruit in fruits { print(水果: \(fruit)) } // 遍历字典 var scores [张三: 95, 李四: 88] for (name, score) in scores { print(\(name) 得分: \(score)) } // 区间遍历 for i in 1...5 { // 包含5 print(i) // 1, 2, 3, 4, 5 } for i in 1..5 { // 不包含5 print(i) // 1, 2, 3, 4 }4. while 循环var count 0 while count 5 { print(计数: \(count)) count 1 } // repeat-while先执行后判断 var x 0 repeat { print(x \(x)) x 1 } while x 3七、函数1. 基本函数定义// 无参数无返回值 func sayHello() { print(你好Swift!) } // 有参数无返回值 func greet(name: String) { print(你好, \(name)!) } // 有参数有返回值 func add(a: Int, b: Int) - Int { return a b } // 调用函数 sayHello() greet(name: 张三) let result add(a: 3, b: 5)2. 参数标签// 自定义参数标签 func multiply(number: Int, by multiplier: Int) - Int { return number * multiplier } // 调用时使用标签 let product multiply(number: 4, by: 2) // 忽略参数标签 func subtract(_ a: Int, _ b: Int) - Int { return a - b } // 调用时不需要标签 let difference subtract(10, 5)3. 默认参数值func welcome(name: String, from city: String 北京) { print(\(name) 来自 \(city)) } welcome(name: 张三) // 张三 来自 北京 welcome(name: 李四, from: 上海) // 李四 来自 上海4. 返回多个值元组func minMax(numbers: [Int]) - (min: Int, max: Int) { var currentMin numbers[0] var currentMax numbers[0] for number in numbers[1..numbers.count] { if number currentMin { currentMin number } else if number currentMax { currentMax number } } return (currentMin, currentMax) } let values [3, 5, 1, 9, 4] let result minMax(numbers: values) print(最小值: \(result.min), 最大值: \(result.max))八、枚举 (Enum)// 基本枚举 enum Direction { case north case south case east case west } var currentDirection Direction.north currentDirection .east // 可以省略枚举类型 // 带原始值的枚举 enum Planet: Int { case mercury 1 case venus 2 case earth 3 case mars 4 } let earth Planet.earth print(earth.rawValue) // 3 // 带关联值的枚举 enum Barcode { case upc(Int, Int, Int, Int) case qrCode(String) } var productBarcode Barcode.upc(8, 85909, 51226, 3) productBarcode .qrCode(ABCDEFGHIJKLMNOP) switch productBarcode { case .upc(let numberSystem, let manufacturer, let product, let check): print(UPC: \(numberSystem), \(manufacturer), \(product), \(check)) case .qrCode(let productCode): print(二维码: \(productCode)) }九、类型别名typealias AudioSample UInt16 var maxAmplitudeFound AudioSample.min typealias Point (x: Int, y: Int) var origin: Point (x: 0, y: 0)十、错误处理// 定义错误类型 enum NetworkError: Error { case notConnected case timeout case serverError } // 抛出错误的函数 func fetchData() throws - String { throw NetworkError.timeout } // 处理错误 do { let data try fetchData() print(data) } catch NetworkError.notConnected { print(没有网络连接) } catch NetworkError.timeout { print(请求超时) // 这个分支会被执行 } catch { print(未知错误: \(error)) }学习建议实践为主Swift Playground 是学习 Swift 的绝佳工具从简单开始先掌握变量、常量、基本类型再学习高级特性理解概念特别要理解可选类型、类型推断等 Swift 特有概念阅读官方文档Apple 的 Swift 官方文档是最权威的学习资源项目驱动通过小项目来巩固所学知识Swift 语法设计注重安全性和可读性虽然初学时可能觉得某些概念如可选类型比较复杂但这些设计能帮助您编写更健壮、更少 bug 的代码。随着学习的深入您会发现 Swift 是一门既强大又优雅的编程语言。❤️❤️❤️本人水平有限如有纰漏欢迎各位大佬评论批评指正如果觉得这篇文对你有帮助的话也请给个点赞、收藏下吧非常感谢! Stay Hungry Stay Foolish 道阻且长,行则将至,让我们一起加油吧

更多文章