update: 动态库、静态库的编译链接细节

This commit is contained in:
FantasticLBP
2025-06-23 01:18:55 +08:00
parent aca020701b
commit 1142064d28
129 changed files with 10932 additions and 2615 deletions

View File

@@ -197,7 +197,7 @@ class Stack<Element>: Stackable {
## Swift 型本质
## Swift 型本质
```swift
func swapValue<T>(_ value1: inout T, _ value2: inout T) {
@@ -223,13 +223,13 @@ swapValue(&s1, &s2)
- 然后调用 `swapValue` 方法
- 后续的 `String` 的 `SwapValue` 过程类似
所以编译器最后在执行的时候,会将型真正的类型对应的 metadata 信息当作函数参数,传递进去,再去执行函数
所以编译器最后在执行的时候,会将型真正的类型对应的 metadata 信息当作函数参数,传递进去,再去执行函数
## 型类型约束
## 型类型约束
型必须遵循协议,可以在方法后加 `<>`,在 `<>` 内写型 `T: 需要继承的类 & 协议` (也可以是其他名字,大多数语言都写 T
型必须遵循协议,可以在方法后加 `<>`,在 `<>` 内写型 `T: 需要继承的类 & 协议` (也可以是其他名字,大多数语言都写 T
```swift
protocol Runable {}
@@ -239,7 +239,7 @@ func swapValue<T: Person & Runable>(_ a: inout T, _ b: inout T) {
}
```
另一种场景是在方法参数是某个型且遵循协议后,对其型有更多限制,则用 `where` 去处理。如下例子
另一种场景是在方法参数是某个型且遵循协议后,对其型有更多限制,则用 `where` 去处理。如下例子
```swift
protocol Stackable {