奇思妙想 · 2024年 5月 12日 0

Swift结构体或枚举mutating的本质

8 次浏览

mutating意味着可以修改结构体或者枚举的成员。作为一门不需要显式指明指针的语言,如果让一个值类型修改到自身就需要用一个关键字指示出此方法需要传指针,而不是复制对象。mutating会让编译器将结构体或枚举成员函数的第一个参数self加上inout修饰符,即相应的代码修改会直接改到结构体或枚举本身,而不是self参数因为是值类型而被复制的结构体或枚举。