我们说我有一个协议和结构如下:
protocol A {
var someType: UnrelatedProtocol.Type { get }
}
struct B<T: UnrelatedProtocol> {
var anotherThing: T?
}
我想像这样一起使用这些:
struct C<T: A> {
typealias SomeThing = (B<T.someType>) -> Void
}
这在Swift中可行吗?我一直在玩这个但是不能把它弄得很对。也许它不可能,但我觉得我应该做这样的事情。
谢谢!
答案 0 :(得分:1)
首先我们有
protocol UnrelatedProtocol { }
现在我们需要在协议A
protocol A {
associatedtype SomeType: UnrelatedProtocol
var someType: SomeType { get }
}
最后
struct B<T: UnrelatedProtocol> {
var anotherThing: T?
}
struct C<T: A> {
typealias Logic = (B<T.SomeType>) -> ()
}