gpt4 book ai didi

arrays - Swift2 GeneratorOfOne.next() 发生错误 : cannot use mutating member on immutable value: function call returns immutable value

转载 作者:行者123 更新时间:2023-11-28 16:16:26 27 4
gpt4 key购买 nike

我对 swif2 AnyGenerator 和 GeneratorOfOne 很困惑。当我写下面的代码时

AnyGenerator(GeneratorOfOne([1,2,3])).next()

编译正确。但是没有使用 AnyGenerator

GeneratorOfOne([1,2,3]).next()

代码无法编译,错误是

cannot use mutating member on immutable value: function call returns immutable value.

最佳答案

您收到错误是因为 next 是一个 mutating 方法,需要在变量 (var) 上调用。在常量 (let) 上调用它是行不通的。

编译:

var generator = GeneratorOfOne([1,2,3])
generator.next()

相同的 next 调用适用于 AnyGenerator,因为在该结构上,方法不是 mutating 方法。下面的 Se 摘自讨论中的两个结构的定义:

public struct AnyGenerator<Element> : GeneratorType {

.................................

public func next() -> Element?
}

public struct GeneratorOfOne<Element> : GeneratorType, SequenceType {

.................................

public mutating func next() -> Element?
}

关于arrays - Swift2 GeneratorOfOne.next() 发生错误 : cannot use mutating member on immutable value: function call returns immutable value,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39014728/

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