Swift – 转换为绝对值
有什么办法从一个整数获得绝对值?
例如
-8 to 8
我已经尝试使用UInt()假设它将Int转换为无符号的值,但它没有工作。
标准abs
函数在这里工作很好
var c = -8 println(abs(c)) // 8
根据您的需要,使用Swift 4,您可以使用以下两种方法之一来解决您的问题(也适用于其他数值variables,例如CGFloat,Double等):
#1。 从magnitude
属性获得一个Int
的magnitude
在Swift 4中, Int
具有一个magnitude
属性。 magnitude
有以下声明:
var magnitude: UInt { get }
Xcode 9 beta 5中还有如下描述:
对于任何数值
x
,x.magnitude
是x
的绝对值。
以下Playground代码显示如何使用magnitude
属性来获取Int
实例上的绝对值:
let value = -5 print(value.magnitude) // prints: 5
#2。 从abs(_:)
方法获取Int
的abs(_:)
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