问题标签 [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 投票
2 回答
67 浏览

python - Python中的变异/就地函数调用或适应

我的代码中经常有执行以下操作的语句:

这很清楚,但同时又冗长且有些多余。Python中是否有任何方法可以通过将 some_function其作为“变异”(“就地”)函数来简化此语句?

例如,在 Julia中,通常可以执行以下操作:

这被分派到some_function直接写入的版本long_descriptive_variable_name,有效地更新了变量。

有什么方法可以在 Python 中为泛型函数简明扼要地表达相同的意思some_function吗?

用通用对象方法做同样的事情怎么样?即简化

如果上述内容在当前版本的 Python 中无法(轻松)实现,是否有任何 PEP 考虑在不久的将来进行此更改?

0 投票
0 回答
45 浏览

ios - “ShopDisplay”类型的不可变值仅具有名为“setAllShopItems”的变异成员

我正在尝试设置一个 var 而不是 let 的数组属性。注意setAllShopItems方法:

我这样称呼这个setAllShopItems()方法:

getShopDisplay 返回的属性也是一个 var:

因此,如果所有这些被设置的变量都是 vars,并且我mutating在设置它们时使用关键字(如果它们是structs),我怎么还会收到这个错误?:

/Users/Ben/Documents/Development/MirrorMirror/MirrorMirror/ChooseShopViewController.swift:40:44:“ShopDisplay”类型的不可变值仅具有名为“setAllShopItems”的变异成员

0 投票
1 回答
378 浏览

struct - Swift 2:结构上的变异方法不能从内部闭包中工作

我正在尝试从闭包中调用我的一个结构上的变异方法。它不工作。

我正在安排从dispatch_after. 我收到错误消息Partial application of 'mutating' method is not allowed

这在 Swift 1.2 中有效。不是在 Swift 2 中。更新后出现错误。这是一个独立的示例,将显示 Playground 中的错误。

顺便说一句,如果我将changeTimestamp方法更改为:

0 投票
1 回答
3009 浏览

swift - Swift NSDate 扩展错误:变异对类或类绑定协议中的方法无效

我正在尝试扩展,NSDate但出现两个错误:

我的猜测是这NSDate是一个类而不是 Swift 类型,因为错误状态mutating在类中的方法上是不可能的。如果我返回值并分配它一切正常,但我想知道这不起作用的确切原因以及是否有更好的解决方法。

0 投票
1 回答
234 浏览

swift - 相当于 C++ 可变关键字的 Swift 结构?

mutableC++关键字在 swift 中是否有等价物?我有一个实现包含非变异函数的协议的结构,但是内部实现确实会改变内部状态。有没有办法通过这个函数使类的成员 var 可变,而不改变协议定义,使函数mutating

例如

0 投票
1 回答
1031 浏览

swift - Self 是 UIViewController 的协议扩展中的变异函数

我编写了一个协议和相应的扩展,它利用一个简单StringStack的形式与表单的命名约定"<origin>@<destination>"在我的 Swift 应用程序中的嵌套视图之间执行 segues。我是 swift 新手,所以如果有更好的方法来实现跨多个视图的本质上的前进和后退按钮,我愿意接受。但是,由于我在下面详述的原因,以下代码存在问题。

我最初的问题是协议扩展中不允许变异函数,如本错误报告中所述。该报告中给出了一个建议的解决方法,但是以下导致错误声称'SegueForwardAndBackward' is not a subtype of 'UIViewController'.

我确实遇到了一个潜在的解决方案,我可以在另一个问题SegueForwardAndBackward中详细说明类协议。但是,实现类协议会导致段错误,我认为这是因为我将扩展声明为,不幸的是我不知道如何解决这个问题。where Self: UIViewController

目前,我对 Swift 中似乎又一个错误感到非常沮丧,所以任何帮助我修改我的方法或破译这些错误将不胜感激。

提前感谢您的回复!

0 投票
3 回答
5023 浏览

swift - 在闭包中捕获结构引用不允许发生突变

我想看看我是否可以为我的模型使用结构并正在尝试这个。当我打电话时 vm.testClosure(),它不会改变的价值,x我不知道为什么。

0 投票
2 回答
95 浏览

swift - 变异有趣的调用快速语法

我正在通读 Swift 2.2 man 并试图理解 mutating fun 部分中的一个函数,这里是代码

我遇到问题的部分是 func moveByX 语法。y deltaY 例如,这是如何允许的?y 是结构中声明的变量,但 deltaY 位在哪里出现?

somePoint.moveBy 中只传递了两个值

值是否同时传递给 y 和 deltaY ?

谢谢你的帮助

0 投票
2 回答
594 浏览

ios - 如何使用变异函数设置类属性?

下面的类提供了一个变异函数来改变它的属性:

函数调用如下:

但是,在1设置了城市名称时,从位置 Struct 内部查看它,但未2为对象设置城市名称。我在这里做错了什么?

0 投票
2 回答
6194 浏览

swift - Swift:在类型中找不到枚举案例

我一直在这里搜索很多问题,我发现一个类似标题的问题Enum case switch not found in type,但对我来说没有解决方案。

我想使用带有自身突变的枚举来解决问题,即在各个州,下一个红绿灯颜色是什么。

我已将所有情况作为可能的选项,但它仍然返回错误:

在“TrafficLights”类型中找不到枚举“案例”