변환은 간단합니다.
let float = Float(1.1) // 1.1
let int = Int(float) // 1
그러나 안전하지 않습니다.
let float = Float(Int.max) + 1
let int = Int(float)
멋진 충돌로 인한 의지 :
fatal error: floating point value can not be converted to Int because it is greater than Int.max
그래서 오버플로를 처리하는 확장을 만들었습니다.
extension Double {
// If you don't want your code crash on each overflow, use this function that operates on optionals
// E.g.: Int(Double(Int.max) + 1) will crash:
// fatal error: floating point value can not be converted to Int because it is greater than Int.max
func toInt() -> Int? {
if self > Double(Int.min) && self < Double(Int.max) {
return Int(self)
} else {
return nil
}
}
}
extension Float {
func toInt() -> Int? {
if self > Float(Int.min) && self < Float(Int.max) {
return Int(self)
} else {
return nil
}
}
}
나는 이것이 누군가를 도울 수 있기를 바랍니다.
as
연산자는 서브 클래스로 다운 캐스트입니다.UIView as UIButton