iOS12-Swift5-數字函式fabs()和fabsf()已成歷史

Lebus發表於2019-05-01

之前在Swift語言中,有三個求絕對值的數字函式:

abs(x)--x必須為Int,求Int的絕對值用這個

fabs(x)--x必須為Double,求Double的絕對值用這個

fabsf(x)--x必須為Float,求Float的絕對值用這個

那如果我要求一個CGFloat的絕對值呢? 先轉化為Double或Float,然後再轉回來?

麻煩!

Swift5已經悄悄的處理了這個問題(我不確定是從Swift幾開始的,反正5已經變了),目前搜文件已經搜不到後面兩個了:

螢幕快照 2019-04-30 下午8.32.24.png
螢幕快照 2019-04-30 下午8.32.34.png

現在求絕對值統一隻用一個函式就行:

abs()

官方說明:

螢幕快照 2019-04-30 下午8.33.08.png
也就是說只要是遵循ComparableSignedNumeric協議的東西就行 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))
複製程式碼

 

廣告時間:小弟的iOS12零基礎視訊教程(每章皆可試聽):

m.study.163.com/provider/48…

相關文章