• 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("")
        }
    
    }
  • 相关阅读:
    调研《构建之法》指导下的历届作品
    需求分析与原型设计
    软件工程的实践项目课程的自我目标
    php 字符串的一些操作,以便记忆
    MOTT的学习(一)
    session,cookie
    php Curl_setop 的学习
    使用Git进行代码管理的心得
    搭建andiord sdk和安装eclipse adt插件的个人小体会
    这些天自身努力的体会,关于java方面的
  • 原文地址:https://www.cnblogs.com/sayimba/p/6245499.html
Copyright © 2020-2023  润新知