Mybe you're looking for this pattern:
type Foo{T <: String}
       a::T
       b::T
end
Foo(a::String, b::String) = Foo(promote(a,b)...)
If you don't know promote, here's an excerpt from help()
julia> help(promote)
Base.promote(xs...)

   Convert all arguments to their common promotion type (if any), and
   return them all (as a tuple).



Am Donnerstag, 5. März 2015 17:55:40 UTC+1 schrieb Benjamin Deonovic:
>
> Moving a post from julia issues to here since it is more appropriate: 
> https://github.com/JuliaLang/julia/issues/10408
>
> If I am making a function or composite type that involves floating point 
> numbers, should I enforce those numbers to be Float64 or FloatingPoint? I 
> thought 
> it should be FloatingPoint so that the function/type will work with any 
> kind of floating point number. However, several julia packages enforce 
> Float64 (e.g. Distributions package Multinomial distribution) and so I run 
> into problems and have to put in a lot of converts in my code to Float64. Am 
> I doing this wrong? I'm quite new to julia
>
>
> I don't have any intention to use non Float64 floatingpoints numbers, I'm 
> just trying to write good code. I saw a lot of examples where people 
> recommended to to use Integer rather than Int64 or String rather than 
> ASCIIString, etc. I'm just trying to be consistent. I'm fine just using 
> Float64 if that is the appropriate approach here.
>

Reply via email to