构造过程是为了使用某个类、结构体或枚举类型的实例而进行的准备过程,在构造过程中,对每个属性进行了初始值预设和其他必要的准备和初始化工作。
与OC相比,swift的构造函数,不需要返回值。同时,在类和结构体的构造过程中,必须对所有的存储类型属性,包含继承自父类的属性,赋予合适的初始值。存储类型值不能处于一个未知状态。
在对属性进行初始化过程中,有两种方法,第一:使用构造方法,第二:在定义属性时,...
分类:
其他好文 时间:
2014-06-22 22:48:43
阅读次数:
340
接上一篇文章,当Nginx以文件作为用户的请求时,它不会把文件内容读入内存,然后再从内存发送出去,而是会调用sendfile系统调用在不经过用户空间的情况下,从内核直接发送出去。这样做显然效率要更高,Nginx也为我们封装好了一系列的接口,下面就来说明如何发送一个磁盘文件给客户端。
和从内存直接发送数据最大的不同在于ngx_buf_t缓冲区的设置方法,ngx_buf_t结构体的定义如下:...
分类:
其他好文 时间:
2014-06-22 20:44:52
阅读次数:
211
结构体的内存布局记住两个规则即可,这是编译器的优化措施。
规则1:结构体中第一个成员的偏移量是0,以后每个成员的位置是x的倍数;
x = min(#pragma pack(), 该成员自身的长度)
规则2:成员对齐后,结构体自身也要对齐,按照y的倍数进行;
y = min(#pragma pack(), 最大成员尺寸)。
其中#pragma pa...
分类:
其他好文 时间:
2014-06-22 19:35:35
阅读次数:
171
扩展
扩展可以让我们给一个已有的类、结构体、枚举等类型添加新功能,包括属性和方法,甚至是构造器,下标,支持协议等等。。。
甚至是我们拿不到源代码的类、结构体、枚举,我们依然可以给它加扩展。。。
看到这里的时候,我还有点小激动呢。。。可是淡定下来之后,觉得这TMD就是个大大的飞线,飞线,飞线。。。这让我们的代码难以理解全面(总要担心是不是哪里还有扩展,我没读到的。。谁会不会在哪...
分类:
其他好文 时间:
2014-06-22 18:45:04
阅读次数:
154
扩展就是向一个已有的类、结构体或枚举类型添加新功能(functionality)。扩展和 Objective-C 中的分类(categories)类似。(不过与Objective-C不同的是,Swift 的扩展没有名字。)
Swift 中的扩展可以:
1.添加计算型属性和计算静态属性
2.定义实例方法和类型方法
3.提供新的构造器
4.定义下标
5.定义和使用新的嵌套类型
6.使一个...
分类:
其他好文 时间:
2014-06-22 14:50:00
阅读次数:
211
typedef struct student{
int num; //成员
int age;
char name[10];
}s_stu,*p_stu;...
分类:
其他好文 时间:
2014-06-22 14:01:44
阅读次数:
232
类和结构体在实例创建时,必须为所有存储型属性设置合适的初始值。存储型属性的值不能处于一个未知的状态。
你可以在构造器中为存储型属性赋初值,也可以在定义属性时为其设置默认值。以下章节将详细介绍这两种方法。
注意:
当你为存储型属性设置默认值或者在构造器中为其赋值时,它们的值是被直接设置的,不会触发任何属性观测器(property
observers)。
一、基本语法
...
分类:
其他好文 时间:
2014-06-22 00:03:47
阅读次数:
287
这个函数做了连部分工作:1)以端口为入口点 将有用的信息存放到hash表内 2)调用ngx_http_init_listening()函数 对端口进行监听
1、 在ngx_http_core_main_conf_t结构体中有一个字段为ports,是一个数组,数组内存放的全是ngx_http_conf_port_t;对于每一个端口信息(ngx_http_conf_port_t),调用
ngx_h...
分类:
其他好文 时间:
2014-06-21 21:16:25
阅读次数:
267
Protocol(协议)用于统一方法和属性的名称,而不实现任何功能。协议能够被类,枚举,结构体实现,满足协议要求的类,枚举,结构体被称为协议的遵循者。
遵循者需要提供协议指定的成员,如属性,方法,操作符,下标等。
一、协议的基本语法
咱们还是先上代码吧
protocol Human {
var name:String{ get set }
var isMan:...
分类:
其他好文 时间:
2014-06-21 18:39:12
阅读次数:
199