SuperAPI AI 工具集

axiom-ownership-conventions

通用与其它

查看项目

更新于 10-15 20:11

技能介绍

用途:在 Swift 中通过显式所有权修饰符优化大值类型性能、支持非可复制类型,并用 InlineArray/Span 实现零拷贝内存访问。

主要能力:borrowing 表示调用方保留所有权、只读借用,避免隐式拷贝;consuming 表示所有权转移,适合工厂方法与一次性使用;inout 原地修改。默认情况下函数参数为 borrowing、初始化器与属性 setter 为 consuming、方法 self 为 borrowing。borrowing 参数需显式 copy 才能存储,可用 consume 显式转移所有权。~Copyable 类型必须显式标注所有权,且不能存入 Array/Dictionary/Set、泛型与协议支持受限、默认不能闭包捕获。InlineArray<let count, Element> 为编译期定长、栈分配、无堆分配与 COW,支持 ~Copyable 元素。Span 家族(Span、MutableSpan、RawSpan、MutableRawSpan、OutputSpan、UTF8Span)提供编译期生命周期安全的连续内存视图,不可逃逸,零运行时开销。

使用方式:按需为参数或方法添加 borrowing/consuming;对 ~Copyable 类型所有方法显式标注;用 array.span、mutableSpan 获取视图;用 InlineArray 声明定长集合。

适用场景:大结构体只读传递、高频调用热路径、ARC 流量可测量、二进制解析与序列化、UTF-8 处理、固定尺寸内联存储。

限制:小类型无需优化;默认行为通常已最优;修饰符影响 ABI;~Copyable 与集合、泛型、协议、闭包存在兼容约束;Span 不能返回或捕获。具体 API 可用性与版本要求暂未提供。