到目前为止我发现的答案可能是否定的,但我想知道未来是否有任何计划支持此功能。这是 Swift 中的样子。
协议组合的形式为 SomeProtocol & AnotherProtocol。您可以根据需要列出任意多个协议,并用与号 (&) 分隔它们。除了协议列表之外,协议组合还可以包含一种类类型,您可以使用它来指定所需的超类。
protocol Named
{
var name: String { get }
}
protocol Aged
{
var age: Int { get }
}
func wishHappyBirthday(to celebrator: Named & Aged)
{
print("Happy birthday, \(celebrator.name), you're \(celebrator.age)!")
}
您无法在 Kotlin 中显式定义交集类型,但可以使用泛型类型约束在函数参数中实现它。像这样:
interface Named {
val name: String
}
interface Aged {
val age: Int
}
fun <T> wishHappyBirthday(celebrator: T) where T : Named, T : Aged {
println("Happy birthday, ${celebrator.name}, you're ${celebrator.age}!")
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)