Swift 属性协议

作者: maskerII | 来源:发表于2018-04-27 19:08 被阅读50次

属性协议:顾名思义、要求遵从者为指定的名称实现属性,但具体实现是实例属性或类型属性并不关心
可以指定要求实现getter 或 getter+setter 属性必须为变量var

protocol FileAccessProtocol {
    var readOnly :Bool { get }
    var readWrite:Bool { get set}
}

protocol AccessUrlProtocol {
    static var link:String { get }
}

protocol FullNameProtocol {
    var fName:String {get}
    var gName:String {get}
}

struct Student:FullNameProtocol {
    var fName: String
    var gName: String
}

struct Teadcher:FullNameProtocol {
    var fName: String
    var gName: String
}

class Master:FullNameProtocol {
    var fName: String
    var gName: String
    init(fName:String, gName:String) {
        self.fName = fName
        self.gName = gName
    }
    var des : String {
        return self.fName + self.gName
    }
}

var student1 = Student(fName:"王",gName:"小明")
student1.fName
student1.gName

var master1 = Master(fName:"李",gName:"刚")
master1.des


//
class SomeBody : FullNameProtocol {
    var title: String?
    var name: String
    init(title:String?,name:String) {
        self.title = title
        self.name = name
    }
    var fName: String {
        return name
    }
    var gName: String {
        return title ?? "无名小将"
    }
    
    var des:String {
        return self.fName + self.gName
    }
    
    
}

var somebody1 = SomeBody(title:"大帝", name:"亚历山大")
somebody1.fName
somebody1.gName
somebody1.des

var nobody = SomeBody(title:nil, name:"小波")
nobody.fName
nobody.gName
nobody.des


相关文章

  • Swift 属性协议

    属性协议:顾名思义、要求遵从者为指定的名称实现属性,但具体实现是实例属性或类型属性并不关心可以指定要求实现gett...

  • OC和Swift比较

    OC与swift 1.协议 OC:主要用来传值 swift:不仅可以用来传值,swift中的协议可以定义属性方法,...

  • (实验)Swift 面向协议

    协议 swift中协议中可以声明属性,静态属性,方法,静态方案 子类如果继承了协议而不去实现其中的内容,编译就会通...

  • iOS开发之Swift篇(14)—— 协议

    目录 版本 协议 属性要求 方法要求 构造器要求 委托 版本 Xcode 11.3.1Swift 5.1.3 协议...

  • iOS | Swift5.0学习 & 总结(三)

    Swift 协议 1.协议介绍 协议可以用来定义方法、属性、下标的声明,协议可以被枚举、结构体、类遵守(多个协议之...

  • Swift - 面向协议

    Swift面向协议 利用协议实现前缀效果 定义一个结构体Lee ,用于生成计算属性 struct Lee { ...

  • 类和结构体

    类+继承 结构体+协议 Swift 是面向协议编程一个类可以积分另一个类的方法, 属性和其他特性. 在Swift...

  • swift协议基础

    swift协议定义方法(不能有默认参数)和属性(不能是let常量且必须表明读取属性)列表。一个类或者结构体遵守协议...

  • swift 协议(protocol)

    swift中的协议用于定义方法和属性,但是协议本身并不进行实现,而是由采纳该协议的类进行实现。 一、协议里边可以定...

  • swift 12.1 协议

    1简介 (1)协议就是用来规范双方行为的(2)swift语言中的协议作用是用来统一属性、方法、下标的(3)协议自身...

网友评论

    本文标题:Swift 属性协议

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