gpt4 book ai didi

Swift:有没有一种方法可以定义我只需要在协议(protocol)中实现其中一个功能?

转载 作者:行者123 更新时间:2023-11-28 05:44:55 26 4
gpt4 key购买 nike

假设我们有一个带有两个可能的配置函数的协议(protocol)。但是它的任何实现者都需要其中一个。

public protocol Car {
associatedtype T

func configure(with model: T, engine: EngineType)
func configure(with model: T)
}

有了上面的内容,我将需要同时实现两者。有没有办法让它只需要实现其中一个?

最佳答案

您可以仅使用一个函数和可选的 EngineType 来声明协议(protocol)。然后始终使用默认值实现它。这样 myCar.configure(with:)myCar.configure(with:engine:) 都可以被调用。

protocol Car {
associatedtype T

func configure(with model: T, engine: EngineType?)
}


class MyCar : Car {
typealias T = Int

func configure(with model: Int, engine: EngineType? = nil) {

}

}

关于Swift:有没有一种方法可以定义我只需要在协议(protocol)中实现其中一个功能?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55153579/

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