The change you made is exactly what John meant, I think. Your member 
variable "chain" now depends on the type parameter T. 


On Wednesday, 11 June 2014 16:36:51 UTC+1, Florian Oswald wrote:
>
> hum, good point. 
> however, the same applies if I change this:
>
> type Myt{ T<:Real}
>     n :: Int64
>     chain :: Array{T,1}
>     function Myt(n,z::T) 
>         x = [z for i=1:n]
>         new(n,x)
>     end
> end
>
> or is that not what you meant? I basically want to fill array "chain" with 
> several copies of type T.
>
> On Wednesday, 11 June 2014 16:13:47 UTC+1, John Myles White wrote:
>>
>> Your type’s definition doesn’t seem to depend upon T in any way. Keep in 
>> mind that the type is really just the first two lines of your code:
>>
>> type Myt{T <: Real}
>>   n::Int64
>>   chain::Array
>> end
>>
>> The constructor isn’t part of the type itself, so the dependency on T 
>> needs to occur in the type.
>>
>>  — John
>>
>> On Jun 11, 2014, at 8:04 AM, Florian Oswald <[email protected]> wrote:
>>
>> Hi,
>>
>> I'm trying to understand why this is not working:
>>
>> type Myt{ T<:Real}
>>     n :: Int64
>>     chain :: Array
>>     function Myt(n,z::T) 
>>         x = [z for i=1:n]
>>         new(n,x)
>>     end
>> end
>>
>> i get the error
>> julia> Myt(10,18.0)
>> ERROR: no method Myt{T<:Real}(Int64, Float64)
>>
>> I thought that was very similar to the point example on the manual?
>>
>> type Point{T<:Real}
>>   x::T
>>   y::T
>>
>>   Point(x::T, y::T) = new(x,y)end
>>
>>
>> thanks
>>
>>
>>

Reply via email to