Swift中类和结构体有很多共同点。共同处在于:
定义属性用于储存值
定义方法用于提供功能
定义下标用于通过下标语法访问值
定义初始化器用于生成初始化值
通过扩展以增加默认实现的功能
符合协议以对某类提供标准功能
相对于结构体来说,类是引用类型。结构体是值拷贝类型。类的对象是指针的引用,赋值也只是创建一个指针对象,指向同样的内存区域。而值拷贝是完全不同的拷贝一份对象,和源对象截然不同。
恒等操作符 === !===
用来判断两个对象是否指向同一个对象。
//=========类的哈希.如果要使用类的对象作为key值,那么就要实现hash方法
class SomeObj: NSObject {
var name = "";
override class func hash()-> Int{
return "hello".hash;
}
}
//集合类型对象之间的赋值和拷贝
/*
数组是基于结构体实现的,但是数组在进行赋值时,只有在3种情况下,会发生拷贝行为。
1> 数组的长度发生变化
2> unshare,copy 去掉,数组和字典的行为一致了,都是值类型,
*/