Le mercredi 04 février 2015 à 02:00 -0800, Kristoffer Carlsson a écrit :
> If you want to allocate an Array you can simply write:
> 
> 
> 
> julia> Array(Int, 5, 1)
> 10x1 Array{Int64,2}:
>  2187293504
>  2151034912
>  2195818528
>  2147516504
> 
> 
> 
> Now, Vector is a short form for Array{T, 1}. I would then expect to be
> able to allocate a vector using something like this:
> 
> 
> julia> Vector(Int, 5)
> ERROR: MethodError: `convert` has no method matching
> convert(::Type{Array{T,1}},
>  ::Type{Int64}, ::Int64)
> This may have arisen from a call to the constructor Array{T,1}(...),
> since type
> constructors fall back to convert methods in julia v0.4.
> Closest candidates are:
>   convert{T}(::Type{Nullable{T}}, ::T)
>   convert{T}(::Type{T}, ::T)
>   convert{T}(::Type{FloatRange{T}}, ::FloatRange{T<:FloatingPoint})
>   ...
> 
> 
> Could someone help me with the syntax? Do you have to use the Array
> form every time you want to initiate a Arrat{T,1} with a certain
> length?
As you can see from the printed output, Array(Int, 5, 1) creates an
Array{Int, 2}, which is different from a Vector. If you want a Vector,
call Array(Int, 5). I've often tried typing Vector(Int, 5) too, and
wished it existed, but as it would be redundant with Array(), I'm not
sure it's a good idea to add it.


Regards

Reply via email to