Swift 接口和扩展(Protocol&Extension)

Swift 接口和扩展(Protocol&Extension),第1张

概述开发经常用到这两个,从实现的角度来讲他们的功能吧! protocol protocol ExampleProtocol { var simpleDescription: String { get } mutating func adjust()} 类、枚举和结构体都可以实现接口。 先看一下类: class SimpleClass: ExampleProtocol { va

开发经常用到这两个,从实现的角度来讲他们的功能吧!

protocol

protocol ExampleProtocol {    var simpleDescription: String { get }    mutating func adjust()}

类、枚举和结构体都可以实现接口。

先看一下类:

class SimpleClass: ExampleProtocol {    var simpleDescription: String = "A very simple class."    var anotherProperty: Int = 69105    func adjust() {        simpleDescription += " Now 100% adjusted."    }}var onesimp = SimpleClass()onesimp.adjust()

再看一下结构体:
struct SimpleStructure: ExampleProtocol {    var simpleDescription: String = " struct"    mutating func adjust() {        simpleDescription += "(adjusted)"    }}var onestruct = SimpleStructure()onestruct.adjust()

枚举也可以的:

enum SimpleEnum: ExampleProtocol {    case first(String),second(String)    var simpleDescription: String {        get {            switch self {            case .first("first"):                return "first"            default:                return "second"            }        }        set {            switch self {            case .first("first"):                self = .first(newValue)            default:                self = .second(newValue)            }        }    }    mutating func adjust() {        switch self {        case .first:            self = .first("1" + "first")        default:            self = .second("2" + "second")        }    }}var oneEnum = SimpleEnum.first("lv")oneEnum.adjust()
Extesion:

使用 extension 来为现有的类型添加功能,比如添加一个计算属性的方法。你可以使用扩展

来给任意类型添加协议,甚至是你从外部库或者框架中导入的类型。

extension Int: ExampleProtocol {    var simpleDescription: String{        return "Int"    }    mutating func adjust() {        self += 10    }}

使用起来特别方便,好好学习吧,加油!

如果转载请注明转于:AirZilong的博客

总结

以上是内存溢出为你收集整理的Swift 接口和扩展(Protocol&Extension)全部内容,希望文章能够帮你解决Swift 接口和扩展(Protocol&Extension)所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1065947.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-26
下一篇 2022-05-26

发表评论

登录后才能评论

评论列表(0条)

保存