gpt4 book ai didi

swift - Swift 'mutating' 关键字是什么意思?

转载 作者:行者123 更新时间:2023-12-03 18:25:25 24 4
gpt4 key购买 nike

为什么我必须插入 mutatingstruct 上实现方法之前何时采用协议(protocol)?

为什么我不需要 mutating当我在 class 中做同样的事情时?

最佳答案

只有在更改结构中包含的任何状态时,才需要 mutating 关键字。由于 Swift 结构体是不可变对象(immutable对象),因此调用变异函数实际上会就地返回一个新结构体(很像将 inout 参数传递给函数)。 mutating 关键字让调用者知道该方法将改变值。对此进行概念化的最佳方法是将结构体视为与数字相同:如果执行 4 + 1 操作,4 不会变成 5,执行操作后您只是获得了一个新值。变异函数的运作原理相同。您不能在常量上调用变异函数(例如 let someStruct = SomeStruct() ),因为这与尝试将常量分配给新值相同。由于这种行为,变异函数只能对变量执行(例如 var someStruct = SomeStruct() )。

关于swift - Swift 'mutating' 关键字是什么意思?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51128666/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com