gpt4 book ai didi

Swift 3 变异函数缺少 ('...inPlace' 方法)

转载 作者:搜寻专家 更新时间:2023-10-30 21:49:22 25 4
gpt4 key购买 nike

在 Swift 2.3 中,我们可以这样写:

var rect = CGRect(...)
rect.offsetInPlace(dx: 15, dy: 0)

将一个矩形向右移动 15pt。

但是在 Swift 3 中,这个函数似乎不再存在了。在检查 CGRect 接口(interface)时,我们只能看到非变异变体 offsetBy(dx:, dy:)。在我们通常使用变异函数的所有地方(名为 ...inPlace)也是如此。我已经在 GitHub 上搜索了 Swift evolution 存储库,但找不到任何关于此的注释。

变异变体是否已被移除?剩余的函数是否根据返回值是否被使用而自动改变?恕我直言,如果它们真的被删除了,那将是一种耻辱,因为它们曾经在进行基于代码的布局等时非常方便。

最佳答案

您可以制作一个以实现兼容性。

extension CGRect {
mutating func offsetInPlace(dx: CGFloat, dy: CGFloat) {
self = self.offsetBy(dx: dx, dy: dy)
}
}

关于Swift 3 变异函数缺少 ('...inPlace' 方法),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39438362/

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