Swift 面试题
目录

Swift 中 mutating 关键字的作用是什么?

· 约 3 分钟读完 · 第 83 / 196 章

推荐答案

在 Swift 中,mutating 关键字用于标记结构体(struct)或枚举(enum)中的方法,表示该方法可以修改实例的属性。默认情况下,结构体和枚举是值类型,其方法不能修改实例的属性,除非使用 mutating 关键字。

本题详细解读

1. 值类型的不可变性

在 Swift 中,结构体和枚举是值类型。值类型的实例在方法中默认是不可变的,这意味着你不能在方法中修改实例的属性。例如:

2. 使用 mutating 关键字

为了允许方法修改实例的属性,你需要在方法前加上 mutating 关键字。这样,编译器就知道这个方法可以修改实例的状态。例如:

3. mutating 方法的使用

当你调用一个 mutating 方法时,实例本身必须是可变的(即使用 var 声明的变量)。如果实例是不可变的(使用 let 声明的常量),则不能调用 mutating 方法。例如:

4. mutating 方法在枚举中的应用

mutating 关键字同样适用于枚举。例如,你可以定义一个枚举来表示开关状态,并使用 mutating 方法来切换状态:

5. 总结

mutating 关键字在 Swift 中用于标记结构体和枚举中的方法,允许这些方法修改实例的属性。它是处理值类型可变性的重要机制,确保在需要修改实例状态时能够明确地表达出来。