gpt4 book ai didi

swift - 如果协议(protocol)扩展中定义了静态方法,如何调用协议(protocol)上的静态方法?

转载 作者:IT王子 更新时间:2023-10-29 05:43:12 53 4
gpt4 key购买 nike

protocol Car {
static func foo()
}

struct Truck : Car {

}

extension Car {
static func foo() {
print("bar")
}
}

Car.foo() // Does not work
// Error: Car does not have a member named foo

Truck.foo() // Works

Xcode 自动完成 Car.foo() 正确,所以我想问的是它是否是一个无法编译的错误(说它没有名为 foo() 的成员) .如果静态方法是在协议(protocol)扩展中定义的,你能直接在协议(protocol)上调用静态方法吗?

最佳答案

苹果 doc

Protocols do not actually implement any functionality themselves.Nonetheless, any protocol you create will become a fully-fledged typefor use in your code.

因此,您不能直接调用协议(protocol)的静态方法。

关于swift - 如果协议(protocol)扩展中定义了静态方法,如何调用协议(protocol)上的静态方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32005970/

53 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com