您的位置:首页 > 移动开发 > Swift

Swift_扩展(extension)

2017-08-18 17:35 302 查看
//1、扩展 Double 类型
extension Double{

var km:Double{return self * 10 }
var m:Double{return self }
var cm:Double{return self/10 }

}

extension Double{

var dm:Double{return self+self}
}

//2、扩展整型带 block返回
extension Int{

func re(_ task:(Int)->()) {

for i in 0..<self {
task(18+i)
}

}

}

//3、扩展带整形带下标
extension Int {
subscript(digitIndex: Int) -> Int {
var decimalBase = 1
for _ in 0..<digitIndex {
decimalBase *= 10
}
return (self / decimalBase) % 10
}
}

//4、扩展可以为已有的类、结构体和枚举添加新的嵌套类型:
extension Int {
enum Kind {
case Negative, Zero, Positive
}
var kind: Kind {
switch self {
case 0:
return .Zero
case let x where x > 0:
return .Positive
default:
return .Negative
}
}
}

import UIKit

class ViewController: UIViewController {

override func viewDidLoad() {
super.viewDidLoad()

//1、扩展 Double 类型
let a = 33.4.km          //334
let b = 223.22.m + a.cm  //256.62

//2、扩展Int 带 block
let c:Int = 10
c.re { (a) in

print("扩展Int 带 block\(a)")
}
/*!
扩展Int 带 block18
扩展Int 带 block19
扩展Int 带 block20
扩展Int 带 block21
扩展Int 带 block22
扩展Int 带 block23
扩展Int 带 block24
扩展Int 带 block25
扩展Int 带 block26
扩展Int 带 block27
*/

//3、扩展带整形带下标,从右到左 0
let t = 8978
let qt = t[1] //7

//4、扩展可以为已有的类、结构体和枚举添加新的嵌套类型:
printIntegerKinds([3, 19, -27, 0, -6, 0, 7])

}

//4、扩展可以为已有的类、结构体和枚举添加新的嵌套类型
func printIntegerKinds(_ numbers: [Int]) {
for number in numbers {
switch number.kind {
case .Negative:
print("- ", terminator: "")
case .Zero:
print("0 ", terminator: "")
case .Positive:
print("+ ", terminator: "")
}
}
print("")
}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: