Swift 5.x学习笔记9-属性-补充

类型存储属性地址探究

类型存储属性实际的存储位置,是全局区,如果在对应的类上下定义两个全局变量,甚至会发现三个变量的地址是挨着的

Swift 5.x学习笔记9-属性-补充_第1张图片

代码如上,打断点去汇编看下

Swift 5.x学习笔记9-属性-补充_第2张图片

只有这个三个地方有,地址算出来是连着的,就不细算了

注意:b的值后面备注的是test.Person.age:Swift+Int + 4,不管是Person.age和Persong.age + 4,都不是b的存储地址啊,在本地打印了下,确实是b没错,留个疑问吧

类型方法

类型方法有两种定义方法,一个是加关键字class 一个是加关键字static,最简单的区别就是static通用,class只能在类里面用,还有其它区别,先不细说

Swift 5.x学习笔记9-属性-补充_第3张图片

如图所示,Person对象用class修饰就会报错,调用也简单Car.go()即可,基本语法就不多说了,一般是在单例里面和类型属性一起使用

muatating

因为默认结构体的实例方法是不能修改实例变量的

Swift 5.x学习笔记9-属性-补充_第4张图片

真要修改就必须加关键字

Swift 5.x学习笔记9-属性-补充_第5张图片

就可以正常修改了都是语法问题不细究

@discardableresult

Swift 5.x学习笔记9-属性-补充_第6张图片

比如这个函数,可能并不需要偏移后的新坐标,就加这个关键字,这样即使偏移后,不使用也不会报nouse这样的警告了,属于强逼症的福音吧

 

你可能感兴趣的:(Swift)