当前位置: 首页 > news >正文

网站的查询功能是怎样做的wordpress连接mysql8

网站的查询功能是怎样做的,wordpress连接mysql8,海丰县建设局网站,企业品牌推广方案文章目录 协议协议继承扩展协议扩展面向协议的编程总结#xff1a; 今天你将学习一些真正的 Swifty 功能#xff1a;协议和面向协议的编程#xff08;POP#xff09;。 POP 摒弃了庞大而复杂的继承层次结构#xff0c;代之以更小、更简单、可以组合在一起的协议。这确实应… 文章目录 协议协议继承扩展协议扩展面向协议的编程总结 今天你将学习一些真正的 Swifty 功能协议和面向协议的编程POP。 POP 摒弃了庞大而复杂的继承层次结构代之以更小、更简单、可以组合在一起的协议。这确实应验了 Tony Hoare 多年前说过的一句话“每个大型程序中都有一个小程序试图脱颖而出。” 协议 协议是一种描述事物必须具有哪些属性和方法的方式。然后您可以告诉 Swift 哪些类型使用该协议 - 这一过程称为采用或遵守协议。 例如我们可以编写一个函数来接受具有属性的内容id但我们并不关心具体使用哪种类型的数据。我们首先创建一个Identifiable协议该协议要求所有符合要求的类型都有一个id可以读取“get”或写入“set”的字符串 protocol Identifiable {var id: String { get set } }我们无法创建该协议的实例 - 它是我们想要的描述而不是我们可以直接创建和使用的东西。但我们可以创建一个符合它的结构 struct User: Identifiable {var id: String }最后我们将编写一个displayID()接受任何Identifiable对象的函数 func displayID(thing: Identifiable) {print(My ID is \(thing.id)) }协议继承 一个协议可以从另一个协议继承这个过程称为协议继承。与类不同您可以同时从多个协议继承然后再在上面添加自己的自定义项。 我们将定义三个协议Payable要求符合类型的实现一个calculateWages()方法、NeedsTraining要求符合类型的实现一个study()方法、HasVacation要求符合类型的实现一个takeVacation()方法 protocol Payable {func calculateWages() - Int }protocol NeedsTraining {func study() }protocol HasVacation {func takeVacation(days: Int) }现在我们可以创建一个Employee协议将它们整合到一个协议中。我们不需要在顶部添加任何内容因此我们只需编写开括号和闭括号即可 protocol Employee: Payable, NeedsTraining, HasVacation { }现在我们可以让新类型遵守单一协议而不是遵守三个单独的协议。 扩展 扩展允许您向现有类型添加方法使它们执行最初设计时未考虑的操作。 例如我们可以向该Int类型添加一个扩展使其具有squared()返回当前数字乘以自身的方法 extension Int {func squared() - Int {return self * self} }要尝试一下只需创建一个整数您就会看到它现在有一个squared()方法 let number 8 number.squared()Swift 不允许在扩展中添加存储属性因此您必须使用计算属性。例如我们可以向isEven整数添加一个新的计算属性如果它包含偶数则返回 true extension Int {var isEven: Bool {return self % 2 0} }协议扩展 协议允许您描述某个对象应该具有哪些方法但不提供其中的代码。扩展允许您提供方法中的代码但仅影响一种数据类型 - 您无法同时将该方法添加到多种类型中。 协议扩展解决了这两个问题它们就像常规扩展不同之处在于您扩展的是特定类型就像Int扩展整个协议一样以便所有符合类型的类型都能获得您的更改。 例如这是一个包含一些名称的数组和集合 let pythons [Eric, Graham, John, Michael, Terry, Terry] let beatles Set([John, Paul, George, Ringo])Swift 的数组和集合都符合名为的协议Collection因此我们可以对该协议进行扩展以添加一个summarize()方法来整齐地打印集合 extension Collection {func summarize() {print(There are \(count) of us:)for name in self {print(name)}} }和Array现在Set都有该方法因此我们可以尝试一下 pythons.summarize() beatles.summarize()面向协议的编程 协议扩展可以为我们自己的协议方法提供默认实现。这使得类型更容易遵循协议并允许一种称为“面向协议的编程”的技术 - 围绕协议和协议扩展编写代码。 首先这里有一个名为的协议Identifiable它要求任何符合要求的类型都具有id属性和identify()方法 protocol Identifiable {var id: String { get set }func identify() }我们可以让每个符合要求的类型编写自己的identify()方法但是协议扩展允许我们提供一个默认值 extension Identifiable {func identify() {print(My ID is \(id).)} }现在当我们创建一个符合Identifiable它的类型时会identify()自动获得 struct User: Identifiable {var id: String }let twostraws User(id: twostraws) twostraws.identify()总结 让我们总结一下 协议描述了符合类型必须具有的方法和属性但不提供这些方法的实现。您可以在其他协议之上构建协议类似于类。扩展允许您向特定类型添加方法和计算属性例如Int。协议扩展允许您向协议添加方法和计算属性。面向协议的编程是将应用程序架构设计为一系列协议的实践然后使用协议扩展来提供默认方法实现。
http://www.tj-hxxt.cn/news/139371.html

相关文章:

  • 四川省城镇建设二次供水网站南京尔顺科技发展有限公司表扬信息网络公司网站报价
  • 西安市专业网站建设咨询型网站
  • 餐饮网站系统栾城区住房建设局官方网站
  • 定期更新网站外国人做的学汉字网站
  • 厦门外贸网站下载建行手机银行官方正式版
  • 南京网站seo网站建设的内容管理
  • 农场游戏系统开发 网站建设推广公司网站怎样维护运营
  • 做网站哪个部分网站建设案例价位
  • 校园门户网站建设网站如何添加白名单
  • 微信 网站设计模板做网站用什么云服务器
  • 大理网站建设沛宣企业注册app下载
  • 网站制作的内容什么好网站网页的书签怎么做
  • 如何让别人看到自己做的网站中国广告设计网站
  • 单位网站的作用重庆制作网站培训机构
  • 网站开发网站源码网络营销推广的要点
  • 克隆网站后台做一个网站多长时间
  • 网上做任务挣钱的网站咨询公司来公司做调查
  • 高端建站行业烟台做网站打电话话术
  • 做装修公司网站一起来看在线观看免费
  • 企业门户网站建设咨询桂林人论坛
  • 如何做游戏推广搜索引擎优化seo课程总结
  • 网站子页怎么做兰州做门户网站
  • 电商pc网站建设方案开发公司对设计单位奖惩
  • 调查问卷网站建设河南开封网站建设
  • 浅谈网站建设的目的和意义商务网站建设与管理读后感
  • 北京网站设计公司hlh成都柚米科技15手机壁纸网站大全
  • 创世网站建设公司贪玩游戏原始传奇官网
  • 咸阳网站建设报价企业网站如何做架构图
  • 网站导航设置建设个网站从哪里盈利
  • 企业宽带 做网站企业资质查询平台