gpt4 book ai didi

Swift get vs _read

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

以下2个下标有什么区别?

subscript(position: Int) {
get { ... }
}

subscript(position: Int) {
_read { ... }
}

最佳答案

_read 是 Swift Ownership 故事的一部分,该故事已经开发了一段时间。由于 read(经过 Swift Evolution 后的可能名称)是该语言的相当高级的概念,因此您可能至少需要阅读 Ownership Manifesto here 中描述的内容,以获得比我在这里提供的更完整的答案。

它是下标上 get 的替代方法,允许您对值进行 yield 而不是 return 值。这对于仅移动类型是必不可少的,因为它们不能被复制(这是它们的全部目的),当您 return 一个值时会发生这种情况。通过使用 read 它可以让你拥有例如只移动类型的 Array 并且仍然使用其中的值,而无需通过移动它们来获取它们的所有权。从概念上考虑它的最简单(并且技术上不正确,因为它是一个协程)方法是您获得一个指向 read yields 对象的指针。
read 的兄弟是 modify,它目前处于 Swift Evolution here 的音调阶段,因此它也可以让您了解 read 是什么,因为它也是一个协程。

所以现在如果 Xcode 给你一个 _read 来实现,只需将它更改为 get 因为它是一个错误,因为它不是语言的官方部分。

关于Swift get vs _read,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60105624/

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