SE-0307 introduced a small but important quality of life improvement: Swift is able to implicitly convert between CGFloat
and Double
in most places where it is needed.
In its simplest form, this means we can add a CGFloat
and a Double
together to produce a new Double
, like this:
import Foundation
let first: CGFloat = 42
let second: Double = 19
let result = first + second
print(result)
Swift implements this by inserting an implicit initializer as needed, and it will always prefer Double
if it’s possible. More importantly, none of this is achieved by rewriting existing APIs: technically things like scaleEffect()
in SwiftUI still work with CGFloat
, but Swift quietly bridges this to Double
.
SPONSORED Join a FREE crash course for mid/senior iOS devs who want to achieve an expert level of technical and practical skills – it’s the fast track to being a complete senior developer! Hurry up because it'll be available only until April 28th.
Sponsor Hacking with Swift and reach the world's largest Swift community!
Download all Swift 5.5 changes as a playground Link to Swift 5.5 changes
Link copied to your pasteboard.