ios swift 基础 合集- 荔枝 点击查看更多
-
声明String
String struct 结构体
@frozen public struct String {
/// Creates an empty string.
///
/// Using this initializer is equivalent to initializing a string with an
/// empty string literal.
///
/// let empty = ""
/// let alsoEmpty = String()
@inlinable public init()

-
extension String : ExpressibleByStringLiteral 字面量表达
extension String : ExpressibleByStringLiteral
ExpressibleByStringLiteral 字面量表达:就是写个字符串就可以转换成String
let greeting1 = String.init("Hello, playground")
var greeting2 = "Hello, playground" //字面量表达
-
extension String : CustomDebugStringConvertible 调试描述
extension String : CustomDebugStringConvertible {
public var debugDescription: String { get }
}
-
extension String : CustomStringConvertible 描述
extension String : CustomStringConvertible {
@inlinable public var description: String { get }
}
-
extension String : BidirectionalCollection 双向集合
extension String : BidirectionalCollection {
public typealias SubSequence = Substring
public typealias Element = Character
@inlinable public var startIndex: String.Index { get }
@inlinable public var endIndex: String.Index { get }
public var count: Int { get }
public func index(after i: String.Index) -> String.Index
public func index(before i: String.Index) -> String.Index
public func index(_ i: String.Index, offsetBy distance: Int) -> String.Index
public func index(_ i: String.Index, offsetBy distance: Int, limitedBy limit: String.Index) -> String.Index?
public func distance(from start: String.Index, to end: String.Index) -> Int
public subscript(i: String.Index) -> Character { get }
public typealias Indices = DefaultIndices<String>
}

-
extension String : Hashable
extension String : Hashable {
public func hash(into hasher: inout Hasher)
public var hashValue: Int { get }
}
Hashable 继承 Equatable。
Swift特性你可以使用自定义的类型作为合集的值或者字典的key,只需要让他遵循Hashable协议
public protocol Hashable : Equatable
-
extension String : TextOutputStreamable 输出流协议 和 print 有关
extension String : TextOutputStreamable {
@inlinable public func write<Target>(to target: inout Target) where Target : TextOutputStream
}
-
extension String : TextOutputStream 输出流 和 print 有关
extension String : TextOutputStream {
public mutating func write(_ other: String)
}
参考: www.jianshu.com/p/dc801ddbc…
-
extension String : CustomReflectable Mirror反射
所谓反射就是可以动态获取类型、成员信息,在运⾏时可以调⽤⽅法、属性等⾏为的特性
extension String : CustomReflectable {

-
extension String : CodingKeyRepresentable 自定义字典的key
extension String : CodingKeyRepresentable {
public var codingKey: CodingKey { get }
public init?<T>(codingKey: T) where T : CodingKey
}
参考:www.jianshu.com/p/fdf03febc…
-
extension String : Codable 将模型对象转换为 JSON 或者是其它的数据格式
extension String : Codable {
public init(from decoder: Decoder) throws
public func encode(to encoder: Encoder) throws
}
-
extension String : Equatable 判断是否相等
extension String : Equatable {
@inlinable public static func == (lhs: String, rhs: String) -> Bool
}
-
extension String : Comparable 对比大小
extension String : Comparable {
@inlinable public static func < (lhs: String, rhs: String) -> Bool
}
-
extension String : StringProtocol 字符串protocol
extension String : StringProtocol {
public typealias StringInterpolation = DefaultStringInterpolation
}
-
extension String : RangeReplaceableCollection 提供了替换集合中一个连续区间的元素的能力
extension String : RangeReplaceableCollection {
//省略 ......
}
-
String ,Array 继承 Collection 区分