swift:知识点汇总
个人汇总的swift基础的各个知识点比较简单的理解,方便快速查找和回忆。
let:常量
var:可选类型
..<:无上界
...<:有上界
map:遍历集合,对每一个元素在{}中进行操作,返回对应维数集合
flatMap:遍历集合,如果是多维集合,返回一维集合
willset:属性即将发生改变
didset:属性已经发生改变
rawValue: 用于swift中的enum,原始值
hashValue:哈希值,枚举中每个枚举的数字位置
typealias:类型别名
元组:多个值组成一个复合值,元素为任意类型
多行字符串:
""" 内容 内容 """
""" 内容 内容 """#
+,append:拼接字符串
插入字符串对象:(字符串)
insert(_:at:): 在一个字符串的指定索引插入一个字符
insert(contentsOf:at:): 在一个字符串的指定索引插入一个段字符串
remove(at:): 在一个字符串的指定索引删除一个字符,
removeSubrange(_:): 在一个字符串的指定索引删除一个子字符串。
==:集合相等
isSubset(of:):2个集合值的某个元素包含
isSuperset(of:):2个集合值的全部元素包含
isStrictSubset(of:),isStrictSuperset(of:):判断一个集合是否是另外一个集合的子集合或者父集合并且两个集合并不相等。
isDisjoint(with:):判断两个集合是否不含有相同的值(是否没有交集)。
stride(from:to:by:):跳过不需要的元素。
??:空合运算符,let username = loginName ?? "Guest"
loginName 表示为可选性,如果loginName 为空,则使用默认名称 Guest。
lazy:懒加载
subscript:定义下标,指定一个或多个输入参数和返回类型
基类:Swift 中的类并不是从一个通用的基类继承而来。如果你不为你定义的类指定一个超类的话,这个类就自动成为基类。
override:子类重写父类方法,否则报错。
final:防止重写。
as? :不可转 返回nil
as!:强制转换,不可转错误
extension:声明扩展
subscript:为任何类型(枚举,类,结构体)增加下标功能。
权限访问:open,public,internal,fileprivate,private
https://www.jianshu.com/p/ee4a45e96570
@dynamicMember:对(类、结构体、枚举、protocol)标记后,动态访问不存在的属性,访问的属性不存在,当作key传入func中。
@dynamicCallable:对(类、结构体、枚举、protocol)标记后,调用函数一样调用类型。
@dynamicCallable struct ToyCallable { func dynamicallyCall(withArguments: [Int]) {} func dynamicallyCall(withKeywordArguments: KeyValuePairs<String, Int>) {} } let x = ToyCallable() x(1, 2, 3) // 编译器会翻译为 `x.dynamicallyCall(withArguments: [1, 2, 3])` x(label: 1, 2) // 编译器会翻译为 `x.dynamicallyCall(withKeywordArguments: ["label": 1, "": 2])
:使用#包裹字符串为原始字符串,可以使用特殊字符而不需要转义。
:输出#。
isMultiple:该方法可以检查一个整数是否为另一个整数的倍数。
count(where:):获取数组中符合条件的元素的个数。