第一个博客之Swift随笔
- 引用类型:
- 函数,闭包,类
- 值类型:
- 结构体,枚举
- 基础部分The Basics
- 新增数据类型Tuple元组
- 可选类型Optional
- Swift是类型安全语言
- let常量,var变量
- 冒号代表是xx类型 let pi: Float = 3.14
- 1.25e-2 表示 1.25 × 10^-2,等于 0.0125
- 0xFp-2 表示 15 × 2^-2,等于 3.75
- 整数和浮点数添加额外零和下划线,不影响
- 类型别名(type aliases)就是给现有类型定义另一个名字。你可以使用typealias关键字来定义类型别名。
- typealias AudioSample = UInt16
- Bool ture or false
- 元组tuple
- 可选类型optional let a = Int("abc") Int? a = nil
- 强制解析 if(a !=nil) a!
- 可选绑定(optional binding) if let atemp = a {}
- 隐式解析可选类型(implicitly unwarpped optionals) !
- 可选绑定(optional binding) if let atemp = a {}
- 基本运算符Basic Operators
- 新增区间运算符 a..b和a ...b
- 一元 !a 二元 + 三元?: 操作数
- 赋值=;
- 算数+-*/ ;
- 求余(取模)% a=(b*倍数)+余数 -9%4 = -1;
- 一元正|负号+-
- 组合+=(无返回值);
- 比较==,!=,>= ,恒等===和不恒等!==是否同一对象,bool不能比较,元组可以比较;
- 三木运算符?:;
- 空合a??b => a != nil ? a! : b;
- 区间 a..b(a,b), a...b [a,b);
- 逻辑!,&&,||,组合左结合
- 字符串和字符Strings and Characters, (字符串,结构体,枚举)值类型
- 初始化空字符串 var aStr = String(), var bStr = "",let cStr = String(charaters)
- 字符串插值, \(aStr)
- Unicode标量, 码位(code poing)范围U+0000到U+D7FF或 U+E000到U+10FFF, 标量不包括Unicode代理项(surrogate pair)码位,其码位范围U+D800到U+DFFF
- 计算字符数量
- 访问和修改字符串
- 比较字符串
- 字符串的 Unicode 表示形式
- 新增数据类型Tuple元组
- 可选类型Optional
- Swift是类型安全语言
- let常量,var变量 冒号代表是xx类型
- 1.25e-2 表示 1.25 × 10^-2,等于 0.0125
- 函数(Function)引用类型
- 参数:无参数,多参数,参数标签和参数名称,指定参数标签,忽略参数标签,默认参数值,可选参数,inout
- 返回值:无返回值,元组,可选元组
- Void,Int,(min: min, max:max)?
- 函数类型:
- 函数的参数+返回值类型 (Int, Int) -> Int
- 变量,当做函数参数类型,函数返回值类型
- 闭包(Closures),引用类型
- 尾随闭包
- 值捕获,签到函数
- 逃逸闭包:作用域超过函数,用于异步线程,self若引用 @escaping
- 自动闭包 @autoclosure
- 枚举Enumerations, 值类型
- 关联值
- 原始值,隐式赋值 :Int
- 继承,方法,属性
- 类和结构体:
- 结构体:值类型
- 类:引用类型, ===等价于 两个类类型变量或常量引用同一个类实例
- 属性:
- 计算属性:类,结构体,枚举
- 存储属性:类,结构体
- 属性与市里关联,类型属性
- 方法:Methods
- 实例方法 Instance Methods
- self,结构体和枚举mutating
- 类型方法 Type Methods
- 下标 SubScript
- 继承 Inheritance
- 重写override ,get,set; willSet,didSet, final
- 构造:Initialzatio
- 指定构造器:向上代理
- 便利构造器:横向代理
- 自动引用计数:Automatic Reference Counting
- 类实例循环引用:weak和unowned
- 闭包循环引用:定义捕获列表 [unowned self] in
- 可选链:Optional Chaining
- a.b?.c?.d?[0]
- 错误处理:Error Handing
- 抛出异常throwing func someFunc() throws -> String
- do-catch
- 把错误当成可选类型
- 断言此错误
- 类型转换 Type Casting
- is
- as? 和as!
- Any 表示任何类型,包括函数类型
- AnyObject表示任何类型的实例
- 扩展Extensions
- 类,结构体,枚举,协议
一 基础部分
不需要;let常量,var变量,Int Float,String都是对象
类型转换 2_000_000, 别名 typealias MyType = Int,元祖(404,"not found")
可选绑定 if let temp = name{}, if bool
[] 数组,字典,Cache 例如:[Int] [Int:String]
\(变量名称) 用于字符串拼接或打印输出
?表示可选,空
二 操作符,String
1..<10 [1,10), 1...9 [1,9]
a != nil ? a! : b
循环 for index in 1..<count {}
for name in names[2...] {}
String
String Are Value Types
Collection Type
Array=index+value
Set = values
Dictionary = key+value
for (index, value) in myArray.enumerated(){ }
Control Flow
for name in names {}
while(true){}
repeat {} while (true)
if swift case (0,0):
case 1..<5:
case "a", "A":
case let (x,y) where x ==y:
break, continue fallthrouth(swith),return, throw
Functions
func funcName(paramName : type, ...) -> returnType
func greet(person: String) -> String{ return "Hello" + person+"!"}
func minMax(array: [Int]) -> (min: Int, max : Int){ return (1,9) }
func someFunction(argumentLabel parameterName: Int = 123) {}
func arithmeticMean(_ numbers: Double...) -> Double {}
func swapTwoInts(_ a: inout Int, _ b: inout Int) {}
swapTwoInts(&someInt, &anotherInt)
Function Types
Closures(闭包)
Closures Are Reference Types
- { (parameters) -> return type in
- statements
- }
闭包
类,枚举,结构 都是类型
Structures and Enumerations Are Value Types
Classes Are Reference Types
协议
错误处理
泛型
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律