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

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

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

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

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

那若是我要求一個CGFloat的絕對值呢? 先轉化爲Double或Float,而後再轉回來?spa

麻煩!

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

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

如今求絕對值統一隻用一個函數就行:cdn

abs()

官方說明: 視頻

屏幕快照 2019-04-30 下午8.33.08.png
也就是說只要是遵循 ComparableSignedNumeric協議的東西就行 Comparable--能夠用大於小於等於進行比較 SignedNumeric--有正負

基本上主流數字都OK

本着對技術嚴謹的態度,本人也在playground上跑一遍:htm

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…blog

相關文章
相關標籤/搜索