swfit 中的类型属性说明

时间:2023-03-08 21:49:16

swift 中不叫做类属性,叫类型属性,因为在swift中,struct 和enum也是可以有这种属性的,叫类属性明显不准。

有以下注意事项:

对于值类型(指结构体和枚举)可以定义存储型和计算型类型属性,对于类(class)则只能定义计算型类型属性。

使用关键字static来定义值类型的类型属性,关键字class来为类(class)定义类型属性。

由以上叙述可以知道,class中是不允许定义类的存储型变量的,如果需要实现 类的存储型变量 这种功能该怎么做呢。简单的做法就是再定义一个struct,struct中是可以定义类型的存储型变量的,再在class中写一个计算属性,把struct的存储型变量返回,就实现了所要的功能!

顺便复习一下,java 和 c++中类方法和类变量是用 static 关键字声明的

oc 中类方法用+标记,类变量依旧是static 声明。

swift中的值类型(struct,enum)保持了这个传统,使用static关键字。但在类中发明了class这个关键字。

static在c语言中却有2个作用,写在函数体里面时,作用同上面的几种情况,表示静态的意思。但是写在函数体外边时,是防止其他全局变量同名,也阻止了外部文件对这个变量的引用!