Tôi có đoạn code sau swit, và tôi không thể quản lý để làm cho nó biên dịchThêm hai trở ngại đối với một var giao thức
public protocol A {}
public protocol A2 {}
public protocol B {
var props: A { get }
}
public protocol C : B {
var props: A2 { get }
}
struct D : A,A2 {
}
struct Yo : C {
var props: D
}
Những gì tôi đang cố gắng làm là thêm hai chế loại vào var "props" cả hai: A
là một phần của giao thức B
và A2
như một phần của giao thức C
.
Khi tôi cố gắng thực hiện những giao thức trong struct C
trình biên dịch không thấy rằng là hợp lệ
'A' và 'A2' không liên quan. 'C' là' B' (thừa kế), nếu 'C.props' trả về một kiểu khác, nó không thể được coi là' B' nữa. Vì vậy, nó hoặc là 'C' không nên là một' B' để bắt đầu với hoặc kiểu trả về của 'props' cần phải giống như' Any'. Sẽ được tốt đẹp giải thích những gì bạn thực sự muốn thực hiện. –