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

ios - 带有关联值的开关内部的 Swift Mutation

我有这些我想变异的结构:

我想在 SelectableArray 中使用这个变异 func select() 方法,我从一个变异函数链中调用它(因为 Sections 嵌套在一个结构中)

问题是 CheckoutViewModel 结构永远不会发生变异。我猜这个 switch 不是一个变异函数,所以var modes在那个 switch 里面是不可变的,然后下面的函数是否会发生任何变异都没有关系。我设法做的解决方法是:

你对这个问题有什么其他的解决方案吗?有什么mutating switch我可以使用的功能吗?

0 投票
1 回答
286 浏览

ios - 试图改变作为参数传递给异步函数的数组和对象

因此,如果您查看下面的代码,您将看到以下行失败:

引起的forecasts.append(forecast)。我有一个您在下面看到的服务文件,ForecastService我正在使用该函数从 API 异步获取视图控制器中的 JSON。我正在尝试将一个对象和一个对象数组传递给我想要对其进行变异的函数,以便我可以使用视图控制器中的更新值来更新我的 UI。我想构造预测对象并将它们推送到我在视图控制器中初始化的数组中。

任何关于我如何解决这个问题的说明都会很棒。

0 投票
2 回答
1506 浏览

swift - Mutable 和 Modifialbe 它们是什么意思?

让我们从一些代码段开始

很长一段时间,我对 mutable、modifiable 的含义感到很困惑。到目前为止,这是我的一些理解,如果您能指出它可能存在的所有错误,那就太好了

  1. 上述结构类型中的变异函数不会“变异”实例,它会将变量的旧值替换为全新的值

  2. 变异意味着:赋值,初始化或变异函数等动作不会修改当前值,而是触发替换

  3. 类类型变量的值是不可变的,但您可以修改/更改当前值(这是编译器发出警告的原因,请参阅带 # 的注释)

  4. setter 观察者,只能在类型是值类型时调用,因为 setter 告诉变量是否已被变异/替换(请参见下面的代码)

    /li>

感谢您的时间和帮助

0 投票
1 回答
200 浏览

swift - 为什么变异函数 next 在迭代后不会改变结构(符合 Sequence 和 IteratorProtocol)?

IteratorProtocol我编写了一个堆栈结构,并使其符合Sequence协议。next函数正在变异。所以我想堆栈的迭代会改变结构。

这是控制台输出: 在此处输入图像描述

我不明白为什么堆栈没有改变。我想在变异next()调用之后它会变空。

0 投票
2 回答
176 浏览

swift - 使用外部检测变异函数来变异哪个变量

我有一个带有 2 个变量的结构。此结构具有变异功能,但在此功能中我需要检查要变异的变量。为此,我使用具有复杂逻辑的单独类的静态函数。此类适用于不同的结构,因此出于 DRY 目的,我无法在所有这些结构中表示此逻辑。

问题是,我不知道如何从这个单独的类中接收相同的结构变量,所以没有结构的变量是变异的。我认为,我错过了一些 Swift 知识,因为我确信,这是可能的,无需重复逻辑。

在 Playground 中表示它的代码:

此代码产生:

是的,可以通过以下方式解决:

但我想以更优雅的方式解决它:)

谢谢你的帮助!

0 投票
1 回答
207 浏览

swift - 变量“xxx”从未发生突变;在派生类中

我在这里发布我的第一条消息,我有一个关于 swift 语言的逻辑问题。供您参考,我是 swift 语言的新手,我习惯用 c++ 编写代码,如果您对如何正确地做事(以一种优雅的方式)有一个客观的观点,对我来说有点困难有一些建议,请随时提出您的建议。

我正在使用以下超类进行自制封装:

我想创建一些子类,包括超类,我只是根据子类名称更改分隔符:

因此,在它之后,我只需要在我的程序中将子类创建为 var,添加值并将其包装为封装字符串:

您认为这是正确的方法还是有更好的方法?

我的主要问题是关于这个编译器警告:

我改变了它,它可以工作。

所以有些事情我不明白:为什么我可以更改超类中的属性,就好像继承的子类被声明为常量一样?超类的存储在哪里,它是如何工作的?

0 投票
2 回答
2376 浏览

arrays - 在 Xcode 中的 Swift 结构中追加到数组

我想将一个项目插入到结构中的数组中。我有一堂食物

它已被初始化。我创建了一个结构来将不同的食物组合成组,并将该结构放在一个数组中。

两个变量都已初始化,但是变异函数似乎不起作用。当我尝试像这样添加新的食物时:

//this is what isn't working 我在“组是一个让常量并且不能被变异”的评论下直接收到一个错误。但我想我通过制作解决了这个问题mutating func add(food: Food)

我该怎么做才能将 newFood 项目附加到组数组中的正确部分?

0 投票
1 回答
259 浏览

swift - 结构变异函数在同一结构的另一个实例中调用函数

我今天正在快速学习结构和课程,并决定尝试使用我新发现的知识来简化我之前构建的战斗计算器。现在我明白了,在 func 中调用的属性本质上是局部变量,更何况是“让”常量。所以我知道为什么下面的代码有错误,但我不知道如何在不使用 nil 合并运算符 (??) 为我的代码增加更多复杂性的情况下实现我的目标。

任何建议将不胜感激。

0 投票
3 回答
335 浏览

swift - 结构内部的变异函数

我正在使用 Swift 4,我有一个使用默认值初始化的结构。我在里面创建了一个函数,它应该读取 JSON 并用它得到的内容更改这些默认值,但它似乎不起作用。

错误:闭包不能隐式捕获变异的自我参数

代码:

我将 let 更改为 var,但我想还有一些我不明白的地方..

0 投票
2 回答
57 浏览

javascript - 使用 Object.values() 方法分配一个常量数组?

如何使用 Object.values() 方法用 numObj 对象的值填充 const objArray?我只能用 for loop + push 方法来做到这一点(如下所示)