为什么它能成功编译并运行?(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
协议。
先谢谢你。
1条答案
按热度按时间2fjabf4q1#
MyClass
中的函数load()
满足这两个协议要求。非抛出函数满足抛出函数的要求,因为它就像一个从未真正抛出的抛出函数。类似地,同步函数可以满足
async
要求。