gpt4 book ai didi

ios - 获得 CGVector 的负数

转载 作者:行者123 更新时间:2023-11-29 00:50:48 26 4
gpt4 key购买 nike

我有

let impulse = CGVectorMake(CGFloat(Constants.impulse), 0)

如何在不创建另一个 CGVector 的情况下得到它的负值?

我正在考虑在 CGVector 上创建一个扩展以拥有一个可以反转它的方法,但我还需要它来创建一个新的 CGVector,而不是覆盖脉冲。

此外,我说 CGVector 是引用类型是否正确?

最佳答案

您可以扩展CGVector方法:

public extension CGVector {
func horizontalReverse() -> CGVector {
return CGVector(dx:-self.dx,dy:self.dy)
}
}

用法:

var impulse = CGVectorMake(CGFloat(Constants.impulse), 0)
impulse = impulse.horizontalReverse()

在 Swift 中,structenumtuple 对象都是值类型,定义为类的对象是引用类型 。值类型数据在分配时被复制,而引用类型数据通过引用传递并指向相同的基础数据。

不用介意 CGVector 的声明来源。在您的情况下,我们有 let 或 var 声明。

根据 The Swift Programming Language :

Constants and variables must be declared before they are used. You declare constants with the let keyword and variables with the var keyword.

let 创建一个常量。一旦你设置了它,你就不能改变它的值。不过,您仍然可以将它添加到其他事物并创建新变量。

var 创建一个变量。所以你可以改变它的值。

关于ios - 获得 CGVector 的负数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38158039/

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