首页 文章 精选 留言 我的

精选列表

搜索[Swift开发],共10011篇文章
优秀的个人博客,低调大师

Swift协议(Protocol)

协议是为方法、属性等定义一套规范。没有详细的实现。 协议可以被类、结构体等详细实现(或遵守)。 protocol SomeProtocol { // protocoldefinition goes here } struct SomeStructure: FirstProtocol, AnotherProtocol { // structure definition goes here} class SomeClass: SomeSuperclass, FirstProtocol, AnotherProtocol { // class definitiongoeshere } 属性 1. set 和 get 訪问器 protocol SomeProtocol { var mustBeSettable:Int { get set } var doesNotNeedToBeSettable: Int { get } } 2.静态属性 protocol AnotherProtocol { class var someTypeProperty: Int { get set } } 3.仅仅读 protocol FullyNamed { var fullName: String { get } } 实例: struct Person: FullyNamed { varfullName: String } letjohn= Person(fullName: "John Appleseed") class Starship: FullyNamed { varprefix: String? varname: String init(name: String, prefix: String? = nil) { self.name = name self.prefix = prefix } varfullName: String { return (prefix ? prefix!+ " " :"")+ name } } varncc1701 = Starship(name: "Enterprise",prefix: "USS") 方法 1.定义方法 protocol RandomNumberGenerator{ func random() -> Double } 2.定义静态方法 protocolSomeProtocol { class func someTypeMethod() } 实例: protocol RandomNumberGenerator{ funcrandom() -> Double } class LinearCongruentialGenerator:RandomNumberGenerator { var lastRandom= 42.0let m = 139968.0 let a = 3877.0 let c = 29573.0 funcrandom() -> Double { lastRandom = ((lastRandom * a + c) %m) returnlastRandom / m } } let generator= LinearCongruentialGenerator() println("Here's a random number: \(generator.random())") // prints "Here's a random number:0.37464991998171" println("And another one: \(generator.random())") //prints "And another one: 0.729023776863283" 把协议作为类型使用 protocol RandomNumberGenerator { func random() -> Double} class LinearCongruentialGenerator: RandomNumberGenerator { varlastRandom= 42.0 let m =139968.0 let a = 3877.0 letc = 29573.0 func random() -> Double { lastRandom = ((lastRandom * a + c) %m) return lastRandom / m } } class Dice { letsides: Int let generator: RandomNumberGenerator init(sides: Int, generator: RandomNumberGenerator) { self.sides = sidesself.generator = generator } func roll() -> Int{ return Int(generator.random() * Double(sides)) + 1 } } vard6 = Dice(sides: 6, generator: LinearCongruentialGenerator()) for_ in 1...5 { println("Randomdiceroll is \(d6.roll())") } 本文转自mfrbuaa博客园博客,原文链接:http://www.cnblogs.com/mfrbuaa/p/5178573.html,如需转载请自行联系原作者

资源下载

更多资源
Mario

Mario

马里奥是站在游戏界顶峰的超人气多面角色。马里奥靠吃蘑菇成长,特征是大鼻子、头戴帽子、身穿背带裤,还留着胡子。与他的双胞胎兄弟路易基一起,长年担任任天堂的招牌角色。

腾讯云软件源

腾讯云软件源

为解决软件依赖安装时官方源访问速度慢的问题,腾讯云为一些软件搭建了缓存服务。您可以通过使用腾讯云软件源站来提升依赖包的安装速度。为了方便用户自由搭建服务架构,目前腾讯云软件源站支持公网访问和内网访问。

Spring

Spring

Spring框架(Spring Framework)是由Rod Johnson于2002年提出的开源Java企业级应用框架,旨在通过使用JavaBean替代传统EJB实现方式降低企业级编程开发的复杂性。该框架基于简单性、可测试性和松耦合性设计理念,提供核心容器、应用上下文、数据访问集成等模块,支持整合Hibernate、Struts等第三方框架,其适用范围不仅限于服务器端开发,绝大多数Java应用均可从中受益。

Rocky Linux

Rocky Linux

Rocky Linux(中文名:洛基)是由Gregory Kurtzer于2020年12月发起的企业级Linux发行版,作为CentOS稳定版停止维护后与RHEL(Red Hat Enterprise Linux)完全兼容的开源替代方案,由社区拥有并管理,支持x86_64、aarch64等架构。其通过重新编译RHEL源代码提供长期稳定性,采用模块化包装和SELinux安全架构,默认包含GNOME桌面环境及XFS文件系统,支持十年生命周期更新。

用户登录
用户注册