swift 用在声明中的关键字
Posted 妖妖yaoyao
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了swift 用在声明中的关键字相关的知识,希望对你有一定的参考价值。
1 ///////////////用在声明中的关键字/////////////////
2
3 //1.class声明一个类
4 public class aClass {
5 //.class声明一个类函数
6 public class func test(let num:Int) ->Void{
7
8 }
9 }
10
11 //2.deinit反初始化
12 deinit{}
13
14
15 //3.枚举
16 public enum UIButtonType : Int {
17
18 case Custom // no button type
19 @available(ios 7.0, *)//适用于iOS7.0以上,任何平台
20 case System // standard system button
21
22 case DetailDisclosure
23 case InfoLight
24 case InfoDark
25 case ContactAdd
26
27 public static var RoundedRect: UIButtonType { get } // Deprecated, use UIButtonTypeSystem instead
28 }
29
30
31 //4.extension(扩展 String类)
32 extension String {
33 public typealias Index = String.CharacterView.Index
34 public var startIndex: Index { get }
35 public var endIndex: Index { get }
36 public subscript (i: Index) -> Character { get }
37 }
38
39 //5.func 函数声明
40 func test(let num:Int) ->Void{}
41
42 //6.import 导入框架或者类
43 import Foundation
44 import UIKit
45
46 //7.1 init构造器函数
47
48 // Initializers for creating colors
49 public init(white: CGFloat, alpha: CGFloat)
50 public init(hue: CGFloat, saturation: CGFloat, brightness: CGFloat, alpha: CGFloat)
51
52 //7.2 convenience便利构造器,主要是对一些变量做一些默认值的设置
53 public convenience init(color: UIColor)
54
55 //8.let 声明一个常量 var 声明一个变量
56
57 //9.protocol 协议
58 public protocol NSObjectProtocol {
59
60 public func isEqual(object: AnyObject?) -> Bool
61 public var hash: Int { get }
62
63 public var superclass: AnyClass? { get }
64
65 public func `self`() -> Self
66
67 public func performSelector(aSelector: Selector) -> Unmanaged<AnyObject>!
68 public func performSelector(aSelector: Selector, withObject object: AnyObject!) -> Unmanaged<AnyObject>!
69 public func performSelector(aSelector: Selector, withObject object1: AnyObject!, withObject object2: AnyObject!) -> Unmanaged<AnyObject>!
70
71 public func isProxy() -> Bool
72
73 public func isKindOfClass(aClass: AnyClass) -> Bool
74 public func isMemberOfClass(aClass: AnyClass) -> Bool
75 @available(iOS 2.0, *)
76 public func conformsToProtocol(aProtocol: Protocol) -> Bool
77
78 public func respondsToSelector(aSelector: Selector) -> Bool
79
80 public var description: String { get }
81
82 optional public var debugDescription: String { get }
83 }
84
85 //10.1 static 静态变量
86
87
88 //10.2 static 静态函数(在enum和struct中)
89 class 静态函数(在类和协议中)
90
91/*在非class的类型上下文中,我们统一使用static来描述类型作用域。包括在enum和struct中表述类型方法和类型属性时。在这两个值类型中,我们可以在类型范围内声明并使用存储属性,计算属性和方法。
92class关键字相比起来就明白许多,是专门用在class类型的上下文中的,可以用来修饰类方法以及类的计算属性。要特别注意class中现在是不能出现存储属性的
93有一个比较特殊的是protocol。在Swift中class、struct和enum都是可以实现protocol的。那么如果我们想在protocol里定义一个类型域上的方法或者计算属性的话,应该用哪个关键字呢?答案是使用class进行定义,但是在实现时还是按上面的规则:在class里使用class关键字,而在struct或enum中仍然使用static——虽然在protocol中定义时使用的是class:
94 */
95 struct Point {
96 let x: Double
97 let y: Double
98 // 存储属性
99 static let zero = Point(x: 0, y: 0)
100 // 计算属性
101 static var ones: [Point] {
102 return [Point(x: 1, y: 1),
103 Point(x: -1, y: 1),
104 Point(x: 1, y: -1),
105 Point(x: -1, y: -1)]
106 }
107 // 类型方法
108 static func add(p1: Point, p2: Point) -> Point {
109 return Point(x: p1.x + p2.x, y: p1.y + p2.y)
110 }
111 }
112
113 protocol MyProtocol {
114 class func foo() -> String
115 }
116 struct MyStruct: MyProtocol {
117 static func foo() -> String {
118 return "MyStruct"
119 }
120 }
121 enum MyEnum: MyProtocol {
122 static func foo() -> String {
123 return "MyEnum"
124 }
125 }
126 class MyClass: MyProtocol {
127 class func foo() -> String {
128 return "MyClass"
129 }
130 }
131
132 //11.新类 SomeClaa
新结构体 SomeStruct
133 // 变量 someProperty
134 // 方法 someFunction
135 class SomeClass{
136 }
137
138 struct SomeStruct {
139
140 }
141
142 enum SomeEnumeration{
143
144 }
145
146 protocol SomeProtocol{
147
148
149 }
150 //要使类遵守某个协议,需要在类型后面加上协议名称,中间以冒号:分隔,作为类型定义的一部分。遵守多个协议时,各个协议之间用逗号,分隔。
151 struct SomeStruct: FirstProtocol,AnotherProtocol{
152 properties and methods
153 }
154 //如果类在遵守协议的同时拥有父类,应该将父类放在协议名前,以逗号分隔
155 class SomeClass : SuperClass,FirstProtocol,AnotherProtocol{
156 <#properties and methods#>
157 }
以上是关于swift 用在声明中的关键字的主要内容,如果未能解决你的问题,请参考以下文章