Swift源码简介
- Swift于2015年正式开源,github地址:https://github.com/apple/swift
- 几个可能会经常看的目录:
- docs:一些文档
- stdlib:Swift源码
- lib:c++源码
- include:c++头文件 - 标准库源码位置(标准库:
Int
、Double
、Array
、Dictionary
等等常用类型都属于标准库)https://github.com/apple/swift/tree/master/stdlib/public/core
把标准库代码下载到本地,可以把stdlib/public/core里边的代码拖入到工程中去看,在拖入时,不需要编译不需要拷贝,仅仅供看代码,在勾选时,可以仅勾选如下选项:
Array分析
-
map
、filter
https://github.com/apple/swift/blob/master/stdlib/public/core/Sequence.swift -
flatMap
、compactMap
、reduce
https://github.com/apple/swift/blob/master/stdlib/public/core/SequenceAlgorithms.swift
Substring分析
-
append
、lowercased
、uppercased
https://github.com/apple/swift/blob/master/stdlib/public/core/Substring.swift
Optional分析
-
map
、flatMap
、==
、??
https://github.com/apple/swift/blob/master/stdlib/public/core/Optional.swift
Metadata分析
https://github.com/apple/swift/blob/master/docs/ABI/TypeMetadata.rst
反射
- 反射是编程语言中一项强大的能力,比如Java语言的反射机制
- 对于任意一个类型,都能够动态获取这个类的所有属性和方法信息
- 对于任意一个实例,都能够动态调用它的任意方法和属性 - Swift的反射机制目前还比较弱,通过
Mirror
类型来提供简单的反射功能