ios Swift协议一致性与异步重载

6ie5vjzr  于 2023-07-01  发布在  iOS
关注(0)|答案(1)|浏览(137)

为什么它能成功编译并运行?(Swift 5.8)

protocol AsyncOverloaded {
    func load()
    func load() async throws
}

class MyClass: AsyncOverloaded {
    func load() {
        print("load called")
    }
}

let myClass = MyClass()
myClass.load()
// prints "load called"

根据我的理解,MyClass实际上不符合AsyncOverloaded协议。
先谢谢你。

2fjabf4q

2fjabf4q1#

MyClass中的函数load()满足这两个协议要求。
非抛出函数满足抛出函数的要求,因为它就像一个从未真正抛出的抛出函数。类似地,同步函数可以满足async要求。

相关问题