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 }
时间: 2024-11-05 21:43:50

swift 用在声明中的关键字的相关文章

C/C++中extern关键字详解

1 基本解释:extern可以置于变量或者函数前,以标示变量或者函数的定义在别的文件中,提示编译器遇到此变量和函数时在其他模块中寻找其定义.此外extern也可用来进行链接指定. 也就是说extern有两个作用,第一个,当它与"C"一起连用时,如: extern "C" void fun(int a, int b);则告诉编译器在编译fun这个函数名时按着C的规则去翻译相应的函数名而不是C++的,C++的规则在翻译这个函数名时会把fun这个名字变得面目 全非,可能是

swift学习笔记 - swift中常用关键字

swift中常用关键字 **用作声明的关键字: ** class.deinit.enum.extension.func.import.init.let.protocol.static.struct.subscript.typealias.var 用作语句的关键字 break.case.continue.default.do.else.fallthrough.if.in.for.return.switch.where.while 用作表达和类型的关键字: as.dynamicType.new.is

PHP 面向对象中常见关键字使用(final、static、const和instanceof)

PHP 面向对象中常见关键字的使用: 00x1.Final :final关键字可以加在类或者类中方法之前,但是不能使用final标识成员属性. 作用: 使用final标识的类,不能被继承. 在类中使用final标识的成员方法,在子类中不能覆盖. 总结:final表示为最终的意思,所以使用final关键字的类或者类中的成员方法是不能被更改的. 00x2.Static :static关键字将类中的成员属性或者成员方法标识为静态的,static标识的成员属性属于整个类,static成员总是唯一存在的,

c++中const关键字全面总结

一.const作用 1.const定义常量 注意:const只对它左边的东西起作用,唯一的例外就是const本身就是最左边的修饰符,那么它才会对右边的东西起作用. (1)const修饰变量,以下两种定义形式在本质上是一样的.它的含义是:const修饰的类型为TYPE的变量value是不可变的. TYPE const ValueName = value; const TYPE ValueName = value; (2)将const改为外部连接,作用于扩大至全局,编译时会分配内存,并且可以不进行初

【转载】理解C语言中的关键字extern

原文:理解C语言中的关键字extern 最近写了一段C程序,编译时出现变量重复定义的错误,自己查看没发现错误.使用Google发现,自己对extern理解不透彻,我搜到了这篇文章,写得不错.我拙劣的翻译了一下.(原文:http://www.geeksforgeeks.org/understanding-extern-keyword-in-c/)   我确定这篇文章对c语言的初学者会有很大的帮助,因为这将使他们更好更熟练的使用c语言.所以就让我先来说说extern关键字在变量和函数上的应用.最基本

Java中static关键字的作用和用法详细介绍

static表示“全局”或者“静态”的意思,用来修饰成员变量和成员方法,也可以形成静态static代码块,但是Java语言中没有全局变量的概念. 被static修饰的成员变量和成员方法独立于该类的任何对象.也就是说,它不依赖类特定的实例,被类的所有实例共享. 只要这个类被加载,Java虚拟机就能根据类名在运行时数据区的方法区内定找到他们.因此,static对象可以在它的任何对象创建之前访问,无需引用任何对象. 用public修饰的static成员变量和成员方法本质是全局变量和全局方法,当声明它类

java中的关键字static(静态变量)和final定义常量

1 package point; 2 3 class Point { 4 5 int x = 0; 6 int y = 0; 7 static int z = 100; // 定义静态变量z,类变量 8 static final double PI = 3.1415926;// final定义常量,它的值在运行时不能被改变 9 10 Point(int a, int b) { 11 //PI=3.1415926; 12 /* 13 * 当使用静态常量的时候,不能在构造函数中初始化, 因为静态时,

Delphi中的关键字与保留字

Delphi中的关键字与保留字 分类整理 Delphi 中的“关键字”和“保留字”,方便查询 感谢原作者的收集整理! 关键字和保留字的区别在于,关键字不推荐作标示符(编译器已经内置相关函数或者留给保留实现),二保留字是根本不可能作标示符(编译时有警示!) [系统保留字] and            array          as             asm begin          case           class          const constructor   

C++中explicit关键字的作用

转自:http://www.cnblogs.com/winnersun/archive/2011/07/16/2108440.html explicit用来防止由构造函数定义的隐式转换. 要明白它的作用,首先要了解隐式转换:可以用单个实参来调用的构造函数定义了从形参类型到该类类型的一个隐式转换. 例如: class things{ public: things(const std::string&name =""): m_name(name),height(0),weight(