Swift5 泛型+协议 实际应用
2021-08-23 本文已影响0人
小奉不在乎
struct FM<Base> {
var base: Base
init(_ base: Base) {
self.base = base
}
}
extension FM where Base == String {
var nimberCount: Int {
return 0
}
static func test() {}
}
//extension String {
// // 实例方法使用
// var fm: FM<String> { FM(self) }
// // 类调用
// static var fm: FM<String>.Type { FM<String>.self }
//}
//
//
//"1111".fm.nimberCount
//String.fm.test()
extension String: FMCompatible {}
// 协议方式
protocol FMCompatible {}
extension FMCompatible {
// 实例方法使用
var fm: FM<Self> {
set {}
get { FM(self) }
}
// 类调用
static var fm: FM<Self>.Type {
set {}
get { FM<Self>.self }
}
}
"1111".fm.nimberCount
String.fm.test()