2016-10-20 20 views
5

में नेस्टेड प्रकार पैरामीटर मैं एक प्रकार का घोंसला बनाने की कोशिश कर रहा हूं, लेकिन दाहिने parmaeterized सार प्रकार से उप प्रकार करने में सक्षम होने के लिए प्रकार विनिर्देश के हिस्से के रूप में निम्नतम स्तर की आवश्यकता है। हालांकि, निम्नलिखित त्रुटियां:एक प्रकार की परिभाषा

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

क्या विनिर्देश के लिए टी 2 रखने का कोई अच्छा तरीका है?

+0

शांत त्रिभुज प्रेषण नहीं। (या यह वास्तव में है?) –

उत्तर

9

इस प्रकार की गणना गणना वर्तमान में लागू नहीं की गई है।

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

आप आगे एक आंतरिक निर्माता में बाधा लागू कर सकते हैं अगर आप किसी अपनी पीठ के पीछे नियम तोड़ने के बारे में वास्तव में चिंतित हैं: मानक वैकल्पिक हल कुछ इस तरह है।

संबंधित मुद्दे