Lennakim

I am lennakim

0%

swift扩展-extension

swift 有一个特别的关键字 – extension

1
2
3
4
5
6
7
8
9
10
11
12
13
extension Double{
var km: Double { return self * 1_000.0 }
var m: Double { return self }
var cm: Double { return self / 100.0 }
var mm: Double { return self / 1_000.0 }
var ft: Double { return self / 3.28084 }
}

let oneInch = 25.4.mm
println("One inch is \(oneInch) meters")

let aMarathon = 42.km + 195.m
println("Amarathon is \(aMarathon) meters long")

马上想到的是 ruby monkey-patch

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
class Fixnum

def seconds
return self
end

def minutes
return self*60
end

def days
return self*60*60
end
end
############
5.seconds
2.minutes
1.days


在ios的例子中 ViewControllerExtensions 扩展ViewController, 继承 UITableViewDataSource , 并实现 protocol ,

类似ruby中用 module 扩展class.

参考

Swift扩展-Extension