Swift learn 8
来源:互联网 发布:淘宝 木头衣柜 编辑:程序博客网 时间:2024/05/16 05:47
Swift学习
Swift语法总结
// Playground - noun: a place where people can playimport UIKit//协议(Protocol)用于定义完成某项任务或功能所必须的方法和属性,协议实际上并不提供这些功能或任务的具体实现(Implementation)--而只用来描述这些实现应该是什么样的。//类,结构体,枚举通过提供协议所要求的方法,属性的具体实现来采用(adopt)协议。任意能够满足协议要求的类型被称为协议的遵循者。//协议类似于java中的interfaceprotocol SomeProtocol { var info : Int { get set } var read : Int { get }}class Reader:SomeProtocol{ var info : Int { get{ return 10; } set{ } } var read : Int { get{ return 10; } }}var reader = Reader();reader.info;//method的协议protocol SuperObj{ func toString() -> String;}class BasicObj:SuperObj{ func toString() -> String { return "className:BasicObj"; }}//使用is和as操作符来检查协议的一致性或转化协议类型。//@objc用来表示协议是可选的,也可以用来表示暴露给Objective-C的代码,此外,@objc型协议只对类有效,因此只能在类中检查协议的一致性。//泛型函数可以工作于任何类型func swapValues<T>(inout a:T, inout b:T){ let swapV = a; a = b; b = swapV;}var a:Int=10, b:Int=200;var c:Double=10.0, d:Double=100.0;swapValues(&a, &b);swapValues(&c, &d);println(a);//范型的stackstruct ObjStack<T>{ var iteams = [T](); mutating func push(item : T){ iteams.append(item); } mutating func pop() -> T{ return iteams.removeLast(); }}var stack = ObjStack<Double>();stack.push(0.11);stack.push(1.09);println(stack.pop());//范型版本的数据位置查询//T: Equatable,也就意味着“任何T类型都遵循Equatable协议”。func findIndex<T:Equatable>(array: [T], valueToFind: T) -> Int? { for (index, value) in enumerate(array) { if value == valueToFind { return index } } return nil}//通过修饰符public、internal、private来声明实体的访问级别public class SomeP{}private class SomePrivate();public class SomePublicClass { // 显示的 public 类 public var somePublicProperty = 0 // 显示的 public 类成员 var someInternalProperty = 0 // 隐式的 internal 类成员 private var showDetail:String?; private func somePrivateMethod() {} // 显示的 private 类成员}//类型转换class SomeSuperType {}class SomeType: SomeSuperType {}class SomeChildType: SomeType {}let s = SomeType()let x = s as SomeSuperType // known to succeed; type is SomeSuperType//let y = s as Int // known to fail; compile-time error//let z = s as SomeChildType // might fail at runtime; type is SomeChildType?//where子句中的要求用于指明该类型形参继承自某个类或遵守某个协议或协议的一部分。尽管where子句有助于表达类型形参上的简单约束(如T: Comparable等同于T where T: Comparable,等等),但是依然可以用来对类型形参及其关联约束提供更复杂的约束。如,<T where T: C, T: P>表示泛型类型T继承自类C且遵守协议P。//泛型类可以生成一个子类,但是这个子类也必须是泛型类。//泛型形参子句语法//泛型参数子句 → < 泛型参数列表 约束子句 可选 >//泛型参数列表 → 泛形参数 | 泛形参数 , 泛型参数列表//泛形参数 → 类型名称//泛形参数 → 类型名称 : 类型标识//泛形参数 → 类型名称 : 协议合成类型//约束子句 → where 约束列表//约束列表 → 约束 | 约束 , 约束列表//约束 → 一致性约束 | 同类型约束//一致性约束 → 类型标识 : 类型标识//一致性约束 → 类型标识 : 协议合成类型//同类型约束 → 类型标识 == 类型标识
0 0
- Swift learn 8
- Swift learn 1
- swift learn 2
- Swift learn 3
- Swift learn 4
- Swift learn 5
- Swift learn 6
- Swift learn 7
- SwiftBasicSyntax-Learn Swift(First Day)
- Learn Computer Science with Swift.pdf 英文原版 免费下载
- learn
- learn
- IOS Apps 开发(Swift)(2)——Learn the Essentials of Swift(1)
- IOS Apps 开发(Swift)(2)——Learn the Essentials of Swift(2)
- c programming language learn notes 8
- 【Scikit-Learn 中文文档】8 最近邻
- Learn Chinese ,Learn English!
- learn how to learn
- Android UI系统控件进阶(二)—下拉列表控件Spinner,进度条ProgressBar,滑块控件SeekBar,评分控件RatingBar
- 关于hitTest和UIResponder
- 十一月总结
- 黑马程序员——JAVA基础之标准输入输出流
- 函数版杨辉三角
- Swift learn 8
- gluster存储改变ip段
- CF 483D - Interesting Array(TODO)
- Java判断日期是否是本日,本周,本月
- 斯坦福 机器学习Andrew NG 第三讲Logistic Regression
- 在线支付
- 创建文件以及删除文件
- iOS xib建的控件改变坐标
- 重放攻击简单介绍 ( replay attack )