在 Swift 中,(结构体)和 (类)虽然在语法上看起来很像(都能定义属性、方法、下标、初始化器),但它们在底层逻辑和内存管理上有着根本的区别。 最核心的区别可以用一句话概括:Struct 是值类型(Value Type),而 Class 是引用类型(Reference Type)。 以下是详细的对比分析: 1. 核心区别:值类型 vs 引用类型 这是两者最大的分水岭。 Struct (值类型): 当你将一个结构体赋值给另一个变量,或者传递给函数时,系统会拷贝一份副本。 修改副本不会影响原始实例。 比喻:就像你给同事发了一份 Excel 文件。他在他的电脑上修改了数据,你电脑里的原文件不会变。 Class (引用类型): 当你将一个类实例赋值给另一个变量,或者传递给函数时,传递的是内存地址的引用(指针)。 修改新的变量会直接影响原始实例,因为它们指向内存中的同一个对象。 比喻:就像你给同事发了一个 Google Sheet(在线文档)的链接。他修改了数据,你打开链接看到的也是修改后的数据。 2. 内存管理 (Stack vs Heap) Struct: 通常分配在栈(Stack...