Swift – 转换为绝对值

有什么办法从一个整数获得绝对值?
例如

-8 to 8 

我已经尝试使用UInt()假设它将Int转换为无符号的值,但它没有工作。

标准abs函数在这里工作很好

 var c = -8 println(abs(c)) // 8 

根据您的需要,使用Swift 4,您可以使用以下两种方法之一来解决您的问题(也适用于其他数值variables,例如CGFloat,Double等):


#1。 从magnitude属性获得一个Intmagnitude

在Swift 4中, Int具有一个magnitude属性。 magnitude有以下声明:

 var magnitude: UInt { get } 

Xcode 9 beta 5中还有如下描述:

对于任何数值xx.magnitudex的绝对值。

以下Playground代码显示如何使用magnitude属性来获取Int实例上的绝对值:

 let value = -5 print(value.magnitude) // prints: 5 

#2。 从abs(_:)方法获取Intabs(_:)

Swift 4有一个叫做abs(_:)方法的全局数值函数。 abs(_:)具有以下声明:

 func abs<T>(_ x: T) -> T where T : Comparable, T : SignedNumeric 

返回给定数字的绝对值。

以下Playground代码显示如何使用abs(_:)全局函数来获取Int实例上的绝对值:

 let value = -5 print(abs(value)) // prints: 5