2016-10-20 30 views
5

Tôi đang cố gắng tạo một loại tổ, nhưng cần mức thấp nhất như là một phần của đặc tả loại để có thể loại phụ từ loại trừu tượng đúng đắn. Tuy nhiên, các lỗi sau:Các tham số kiểu lồng nhau theo định nghĩa loại

immutable Type1{T} <: AbstractT{T} 
    x::Vector{T} 
end 
immutable Type2{T,T2} <: AbstractT{T2} 
    x::Vector{T{T2}} 
end 

Có cách nào tốt để có T2 cho đặc điểm kỹ thuật không?

+0

Công văn tam giác không yên tĩnh. (hoặc là nó infact?) –

Trả lời

9

Tính toán loại kiểu đó hiện không được triển khai. Giải pháp chuẩn là một cái gì đó như thế này:

immutable Type2{T2,VTT2} <: AbstractT{T2} 
    x::VTT2 
end 
Type2{T2}(x::Vector{Type1{T2}}) = Type2{T2, typeof(x)}(x) 

Bạn có thể thực thi thêm ràng buộc trong một hàm tạo bên trong nếu bạn thực sự lo ngại về việc ai đó vi phạm các quy tắc sau lưng.

Các vấn đề liên quan