Swift_扩展(extension)


//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("")
    }

}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值