自动闭包 () 是 Swift 中的一种语法糖(Syntactic Sugar),用于修饰函数的参数。 简单来说,它自动把你传递给函数的“普通表达式”包装成一个“闭包”。 这样做主要有两个目的: 1. 语法简洁:调用函数时不需要写花括号 。 2. 延迟执行(Lazy Evaluation):参数中的代码只有在函数内部真正被调用时才会执行。 --- 1. 直观对比:没有 vs 有 假设我们要写一个打印日志的函数,只有在调试模式下才打印。 普通写法 (没有 @autoclosure) 参数必须显式地传入一个闭包。 使用 的写法 参数被自动包装,调用看起来像传了一个普通字符串。 --- 2. 核心特性:延迟执行 (关键点) 你可能会问:“为什么不直接传 ,而要传 ?” 答案是为了性能。 如果传入的是 ,那么在调用函数的那一刻,参数的值就会被立即计算。如果计算这个参数非常耗时(比如涉及复杂的数学运算或格式化),但函数内部最终决定不使用它(例如 为 ),那么这个计算就浪费了。 使用 ,虽然你写的是一个表达式,但它被包装成了闭包。只有当函数体内调用 时,那个表达式才会被执行。 示例: ---...