swift static与oc static

oc static

可以放在全局变量前面,也可以放在局部变量前边
放在全局变量前面,限定了全局变量的作用域(只能在当前文件)
放在局部变量前面,不会改变变量的作用域,但是存储空间是以静态分配,而非默认的自动分配方式获得的,所以存储空间所在区域不同(一般来说,静态分配的存储空间于编译时在程序静态区分配,一次分配全程有效,而自动分配的存储空间则是于调用栈上飞配,只在调用时分配释放),且两次调用间变量始终保持一致(变量只会被初始化一次)

swift static class

static和class 表示 类型范围作用域 - 类型指的是class struct enum ,我们可以使用static来描述类型作用域,需要用类型名来调用该属性;class是专门用于修饰class类型的。

  • static
static 可以修饰属性和方法,但所修饰的属性和方法不能被重写。
  • class
类方法。
class 可以修饰class类型的计算属性和方法,但是不能修饰存储属性,可以被重写。
重写可以使用class关键字,也可以使用static。

protocol

static和protocol
Swift中的class,struct,enum都可以实现某个指定的协议。如果我们想在protocol中定义一个类型作用域上的方法或者计算属性,应该使用哪个关键字?答案显而易见,肯定是static,因为static是通用的。
注意:在使用protocol的时候,在enum和struct中仍然使用static进行修饰,在class中,class和static都可以使用。

static 修饰方法或计算属性相当于 class final

存储属性、计算属性、类型属性

存储属性:用于存储一个常量或变量。
计算属性:不直接存储值,而是通过get、set方法来取值或赋值。同时还可以对其他的属性行进行操作。
类型属性:定义在类上的属性,用static来修饰属性,需要用类名来调用该属性。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 这是16年5月份编辑的一份比较杂乱适合自己观看的学习记录文档,今天18年5月份再次想写文章,发现简书还为我保存起的...
    Jenaral阅读 7,891评论 2 9
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 135,323评论 19 139
  • 1. Java基础部分 基础部分的顺序:基本语法,类相关的语法,内部类的语法,继承相关的语法,异常的语法,线程的语...
    子非鱼_t_阅读 31,899评论 18 399
  • 一颗心与一颗心相印,一支魂与一支魂重叠,流浪就变成了回家,破碎就变成了完整。 ...
    十地菩萨阅读 2,118评论 2 4
  • 只要是你,我什么都不怕。 永远永远永远。
    光辉啊阅读 936评论 0 0