protocol myProtocol {}
func doSomething(with params: (some myProtocol)...) {
// Implementation goes here
}
extension Int: myProtocol {}
doSomething(with: 1, 2, 3)
func 声明行出现编译错误:
“某些”类型仅允许在属性、下标和函数中
我可以简单地完全省略关键字,但默认情况下它被认为是“any”。因此,我无法将参数传递给需要
[some SyntaxProtocol]
作为参数的函数。
使用泛型可以获得与
some
相同的结果,并且只允许一种符合协议的特定类型
func doSomething<ProtocolType: myProtocol>(with params: (ProtocolType)...) {
// Implementation goes here
}