之前在Swift語言中,有三個求絕對值的數字函式:
abs(x)--x必須為Int,求Int的絕對值用這個
fabs(x)--x必須為Double,求Double的絕對值用這個
fabsf(x)--x必須為Float,求Float的絕對值用這個
那如果我要求一個CGFloat的絕對值呢? 先轉化為Double或Float,然後再轉回來?
麻煩!
Swift5已經悄悄的處理了這個問題(我不確定是從Swift幾開始的,反正5已經變了),目前搜文件已經搜不到後面兩個了:
現在求絕對值統一隻用一個函式就行:
abs()
官方說明:
也就是說只要是遵循Comparable
和SignedNumeric
協議的東西就行
Comparable
--可以用大於小於等於進行比較
SignedNumeric
--有正負
基本上主流數字都OK
本著對技術嚴謹的態度,本人也在playground上跑一遍:
import UIKit
let a = abs(-8)
let b = abs(-8.8)
let c = abs(Float(-8.8))
let d = abs(CGFloat(-8.8))
複製程式碼