美文网首页iOS学习
Swift3.0中的关键字

Swift3.0中的关键字

作者: JunShine | 来源:发表于2017-01-05 20:29 被阅读0次

    open > public > internal > fileprivate > private

    1. public表示当前类、属性或者方法只能在当前module内被继承或者 override,在当前module意外只能被访问;
    2. open表示当前类、属性或者方法可以在任何地方被继承或者override;是跨模块可以访问的。
    3. final是一个辅助修饰词,表示当前类、属性或者方法在任何地方都只能被访问,不能被继承或者override;
    4. internal表示默认级别,在本模块(项目、target)中可以访问。

    Self 关键字

    在Swift2.0, 将Self用于约束泛型,功能类似于OC中的instancetype,示例:extension Ordered where Self: Comparablewhere的作用是限定协议的扩展的有效条件,使用Self来代表协议的遵守者。可以指定遵守者是某个类的子类或者遵守了某个协议。

    protocol Coder {
    
        var haveFun: Bool { get set }
        var ownMoney: Bool { get set }
        
    }
    
    protocol Swifter {
    
        var codingLevel: Int { get set }
        func say()
    
    }
    extension Swifter {
    
        func say() {
            print("I can coding of Swift3.0")
        }
    }
    
    extension Coder where Self: Swifter {
        
        func say() {
            print("I can coding of Swift3.0 and Java")
        }
        
    }
    struct CoderA: Swifter {
        internal var codingLevel: Int = 0
    
    
        var name: String
        var haveFun: Bool
        var ownMoney: Bool
    
    }
    
    struct CoderB: Coder,Swifter {
        
        var haveFun: Bool = true
        
        var ownMoney: Bool = true
    
        
        var codingLevel = 5
    
        var name: String
    
    }
    let codera = CoderA(codingLevel: 5, name: "jjx", haveFun: false, ownMoney: false)
    let coderb = CoderB(haveFun: true, ownMoney: true, codingLevel: 50, name: "xxxoo")
    
    coderb.codingLevel
    print("++++++++++")
    codera.say() //I can coding of Swift3.0
    
    coderb.say() //I can coding of Swift3.0
    print("************************************************************")```
    
    
    ### @discardableResult忽略函数的的返回值
    
    func show() -> Int {
        return 5
    }
    

    show()///Result of call to 'show()' is unused

            @discardableResult
            func show() -> Int {
                return 5
            }
            
            show()///OK
    ###@available

    相关文章

      网友评论

        本文标题:Swift3.0中的关键字

        本文链接:https://www.haomeiwen.com/subject/ndgzvttx.html