It's like what if I want to define a 3-dimension linear space R^3 as an
abstract type and the Array{Float,3} is a subtype-like type of the abstract
type 3-dimension linear space?

I want a linear space as abstract type and some subtypes that can do the
linear algebra.

2015-09-25 20:36 GMT+08:00 Yichao Yu <[email protected]>:

> I have some trouble understand your question.
>
> On Fri, Sep 25, 2015 at 8:22 AM, Roger Luo <[email protected]>
> wrote:
> > Thanks,I've read about the arrays,but just don't know how to define some
> > existed type.
>
> You cannot redefine a type. Or do you mean how are certain existed
> types implemented? For that you can just check out the source code.
>
> > though a type may be defined as:
> > type a{T<:Integer}<:Real
> > xxx
> > end
> >
> > but that's will work in my function.I tried to pass different types into
> a
> > function, so I asked this question.
> > still do not understand why can define a existed type become a subtype of
> > some other type?
>
> You cannot change the type inheritance of an existing type, period. As
> Mauro pointed out, you are probably looking for something else. It
> would be better if you can post the original problem you are trying to
> solve.
>
> >
> > 2015-09-25 15:11 GMT+08:00 Mauro <[email protected]>:
> >>
> >> Julia's parametric types are invariant (except tuples).  To figure out
> >> what that means have a read through
> >>
> >>
> http://docs.julialang.org/en/release-0.4/manual/types/#parametric-composite-types
> >>
> >> > How to make Array{BigFloat,1}<:Array{Real,1}?
> >>
> >> This is always false (that is invariance).  But presumably you want a
> >> method which takes any Array with eltype<:Real, try something like:
> >>
> >> julia> f{T<:Real}(ar::Array{T,1}) = typeof(ar)
> >> f (generic function with 1 method)
> >>
> >> julia> f(Array(BigFloat, 2))
> >> Array{BigFloat,1}
> >
> >
>

Reply via email to