extension SomeType {
//Add new functionality
}
let my Double = 3.14159
let myRoundedDouble = String(format: "%.1f", myDouble)
print(myRoundedDouble)
//3.1
extension Double {
func round(to places: Int) {
let precisionNumber = pow(10, Double(places))
var n = self
n = n * precisionNumber
n.round()
n = n / precisionNumber
return n
}
}
var myDouble = 3.14159
myDouble = myDouble * 1000
myDouble.round()
myDouble = myDouble / 1000
myDouble.round()
//3
myDouble.round(to: 3)
//3.141
let button = UIButton(frame: CGRect(x: 0, y: 0, width: 50, height: 50))
button.backgroundColor = .red
button.layer.cornerRadius = 25
button.clipsToBounds = true
extension UIButton {
func makeCircular() {
self.clipsToBounds = true
self.layer.cornerRadius = self.frame.size.width / 2
}
}
button.makeCircular()
버튼을 둥글게 만드는 두가지 방법~!
아래 꺼는 extension으로 구현한거!!
protocol CanFly {
func fly()
}
extension CanFly {
func fly() {
print("fly")
}
}
원래 프로토콜 채택하면 메소드 구현부 작성해줘야하는데
extension으로 프로토콜에 추가적인 함수의 구현부를 작성하면
프로토콜 채택할때마다 굳이 구현부 작성 안해줘도됨!
extension SomeType: SomeProtocol {
//Add new functionality
}