问题标签 [mutating-function]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
3 回答
7162 浏览

ios - Swift struct 变异变量不起作用?

mutating func即使在方法中使用关键字,我也无法修改我的模型类变量?

所以基本上我已经用一种非常简单的方式解决了我的问题,我有一个Car有 3 个变量的类idstartmodelNo

之后初始化一个空的 Car 模型数组,然后我想展示 10 辆汽车,创建一个循环的范围来迭代1...10,初始化 Car 模型类并将其附加到原始汽车数组。

检查前 5 辆汽车 id 为 0,最后 5 辆汽车 id 为 1

我想要一个过滤器,其中相同 id 的最后一辆车将启动,所以我创建了一个过滤并修改 start 变量但无法修改它的方法。你能帮我做错什么吗?

请查看我的完整代码并将其复制粘贴到操场上。

任何帮助将不胜感激。

0 投票
1 回答
514 浏览

swift - Swift 变异函数作为第一类值

我可以有一个函数来交换数组的前两个元素:

这实际上可行,但我尝试过类似的事情,有时它们似乎不稳定。还需要注意编译器警告。我怎样才能做到:array2.swapFirstTwo2() 而不会收到警告/错误?

0 投票
4 回答
1489 浏览

ios - Swift 中的“mutating”函数和“inout”参数有什么区别吗?

根据 Swift 文档,mutating 和 inout 关键字都用于修改函数内的值类型。“mutating”和“inout”以及我们需要使用它们中的任何一个的任何特殊情况之间是否有任何区别。

0 投票
1 回答
178 浏览

swift - 禁止直接赋值的可变属性 - Swift

排除赋值中的可变可变性

斯威夫特 5.0 - Xcode 10.2.1

我有一个带有我希望可变的属性的类,除了我不想让该属性直接分配给=运算符。举个例子:

我想被允许的:

我不想被允许的:


注意: 虽然我知道我可以创建counter一个private(set) var并创建一个incrementCounter()函数Foo来增加它,但我希望能够直接通过counter变量访问变异方法,因为它会使类变得混乱,并且对于类型来说很烦人许多变异方法。同样,我知道我也可以创建counter一个常量和Counter一个类,但我需要属性的值类型语义。

0 投票
1 回答
126 浏览

swift - 在快速结构上改变类属性

我有 Swift 结构,其中包含一个可变类,如下所示:

在看到一些奇怪的行为后,我在 init 和 deinit 上添加了一条语句来打印 BarClass() 的地址。在第二次调用 foobar 时,我希望在第一个 init 的地址上看到 deinit,例如:

初始化 X,初始化 Y,初始化 X。

相反,我看到了 init X、init Y、deinit Y。

这是否仅仅意味着新分配的 BarClass() 的内容被复制到了原始文件中?那么,除了地址之外,结果是否与新栏替换原来的一样,原来的被释放了?

或者,最好只调用一次 BarClass() 并让 foobar() 显式重置其内容。

0 投票
2 回答
76 浏览

swift - 为什么应用于实例的变异方法不保存更改?迅速

我用可变函数扩展了我的自定义协议。然后将其应用到相应类型的实例上。但是实例仅在该行上更改。在下一行,它具有先前的值。为什么对实例所做的更改不会持续存在?

如果我将结果分配mutatingvar/ let。然后结果保存。或者,如果我harderWorkout()print()声明中应用它会打印更改的值。

在我希望看到的最后一个打印中,Workout(distance: 1000.0, time: 100.0, averageHR: 140我不清楚为什么harderWorkout()方法不会更改workout实例。也许是因为值类型。但是我放了可变前缀...... 如果有人向我解释原因及其机制,将非常感激。

0 投票
3 回答
230 浏览

swift - 是否可以在 swift 类中编写变异函数?

我可以在结构中编写变异函数,但不能在课堂上编写。

0 投票
2 回答
553 浏览

ios - SwiftUI - 编辑可编码数组中项目的值不能在不可变值上使用变异成员

List使用一个Codable名为Package. 在某些时候,当用户点击列表中的按钮时,我需要更新项目的isFavorite值。但是我得到了. 首先,我尝试直接更改操作中的值。它没有用,所以到目前为止我得到的要点如下。PackagefavoriteCannot use mutating member on immutable value: 'package' is a 'let' constant

显然代码比这更长,但我只是想让它变得简单并删除不相关的部分。

SwiftUIView

Package.struct

PackageList.struct

JSONController.class

最后我得到的错误,

错误

0 投票
1 回答
409 浏览

swift - 从闭包内部改变结构的属性

我正在尝试在结构中的变异函数中编写闭包,并从闭包内部更改结构的一个属性。但它给了我如下错误:

“转义闭包捕获变异的‘自我’参数”

0 投票
1 回答
577 浏览

swiftui - 如何使用完成处理程序填写列表 [SWIFT UI]

我想使用完成处理程序填充列表,问题是它在第一次执行时加载 nil 并在我尝试使用我的视图时标记错误,其中我的列表由完成处理程序填充......任何修复建议这个?

这就是我尝试填写清单的方式

如您所见,我需要填写我的列表,直到InvitationService请求结束,但是如果我尝试将其放入代码中,我会得到一个

转义闭包捕获变异的“自我”参数

错误

我是说

我的观点

我正在尝试执行,当我这样做时invitationsList为零