zoukankan      html  css  js  c++  java
  • swfit-扩展语法

    import UIKit
    
    
    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}
    }
    
    extension Int {
        mutating func square() {
            self = self * self
        }
    }
    
    extension Int {
        subscript(digitIndex: Int) -> Int {
            var decimalBase = 1
            for _ in 0..<digitIndex {
                decimalBase *= 10
            }
            return (self / decimalBase) % 10
        }
    }
    
    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
            } }
    }
    
    
    
    class First_Demo4: UIViewController {
    
        override func viewDidLoad() {
            super.viewDidLoad()
    
            self.navigationItem.title = "扩展语法"
            self.view.backgroundColor = UIColor.white
            
            
            let oneInch = 25.4.mm
            print("one inch is (oneInch) meters")
            // 打印 “One inch is 0.0254 meters”
            let threeFeet = 3.ft
            print("Three feet is (threeFeet) meters")
            // 打印 “Three feet is 0.914399970739201 meters”
            let aMarathon = 42.km + 195.m
            print("A marathon is (aMarathon) meters long")
            // 打印 “A marathon is 42195.0 meters long”
            
            
            /*
             通过扩展添加的实例方法也可以修改该实例本身。结构体和枚举类型中修改 self 或其属性的方法必须将该实例,
             方法标注为 mutating ,正如来自原始实现的可变方法一样。
             */
            var someInt = 3
            someInt.square()
            print(someInt)
            // someInt 的值现在是 9
           
            print(746381295[0]) // 返回 5
            print(746381295[1]) // 返回 9
            print("-------------我是分割线----------------")
            
            //判断正负
            /*
             函数 printIntegerKinds(_:) 接受一个 Int 数组,然后对该数组进行迭代。
             在每次迭代过程中,对当前整数 的计算型属性 kind 的值进行评估,并打印出适当的描述。
             */
            printIntegerKinds([3, 19, -27, 0, -6, 0, 7])
            
        }
    
        override func didReceiveMemoryWarning() {
            super.didReceiveMemoryWarning()
            // Dispose of any resources that can be recreated.
        }
        
        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("")
        }
    
    }
  • 相关阅读:
    游戏文字自动断行需要,还得从 UTF-8 讲起
    史上最明白的 NULL、0、nullptr 区别分析(老师讲N篇都没讲明白的东东),今天终于明白了,如果和我一样以前不明白的可以好好的看看...
    django -- ORM实现作者增删改查
    selenium--操作JS弹框
    selenium--多窗口操作
    django -- ORM实现图书增删改查
    django -- ORM实现出版社增删改查
    selenium--等待的三种方式
    postman使用--Monitor
    django -- 实现ORM登录
  • 原文地址:https://www.cnblogs.com/sayimba/p/6245499.html
Copyright © 2011-2022 走看看