为了账号安全,请及时绑定邮箱和手机立即绑定

swift 中使用 struct 来实现单例模式,struct 为什么不会被定义两次?

swift 中使用 struct 来实现单例模式,struct 为什么不会被定义两次?

扬帆大鱼 2019-04-13 08:45:58
代码如下:varc=1classSingleton{classvarshared:Singleton{//--struct里边的constant不会被重复定义?why?structStatic{staticletb=c++staticletinstance=Singleton()}println("bis\(Static.b)")returnStatic.instance}}varsingle1=Singleton.sharedc++;varsingle2=Singleton.shared输出结果为:bis1bis1问题为什么b没有改变?
查看完整描述

2 回答

?
翻阅古今

TA贡献1780条经验 获得超5个赞

static关键字的含义就是不属于任何类的实例,而是属于类本身,更重要的是,static修饰的对象和变量会在类第一次被加载时存储在内存中的静态储存区域,只要程序在运行,这块区域就不会被清除掉,也就是说static修饰的instance会一直保存在静态储存区域并且只有一份。所以我们在其他类访问instance的时候,都是访问的这块区域,这就是单例模式的原理所在。
                            
查看完整回答
反对 回复 2019-04-13
  • 2 回答
  • 0 关注
  • 651 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号