Swfit 优雅的自定义方法
struct
struct XQ<T> {
var type : T;
init(_ type: T) {
self.type = type
}
}
extension String {
var xq: XQ<String> {
set {}
get { XQ(self) }
}
static var xq: XQ<String>.Type {
set {}
get { XQ<String>.self }
}
}
extension XQ where T: ExpressibleByStringLiteral {
var length: Int {
return (type as! String).count;
}
static func isNull(_ string: String) {
// ...
}
}
let len = "A".xq.length
String.xq.isNull("111")
struct
class Car { }
extension Car {
var xq: XQ<Car> { XQ(self) }
}
extension XQ where T: Car {
func run() {}
mutating func stop() {}
}
Car().xq.run()
Any
extension XQ where T: Any {
func test() {
//...
}
}
Car().xq.test()
let str = "2222"
str.xq.test()
思路来源《小码哥教育》
作者:IT-IOS-MAN
出处:https://www.cnblogs.com/IT-IOS-MAN/p/18353750
版权:本作品采用「署名-非商业性使用-相同方式共享 4.0 国际」许可协议进行许可。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 零经验选手,Compose 一天开发一款小游戏!
· 通过 API 将Deepseek响应流式内容输出到前端
· 因为Apifox不支持离线,我果断选择了Apipost!