Hi,
I am facing the following dispatch problem:
typealias MyString AbstractString
g(s::Vector{MyString}) = println("here!")
g(s::MyString) = println("there!")
a = ["asd", "bvc", "qwerty"]
b = ["asdť", "bvc", "qwerty"]
println(typeof(a))
Array{ASCIIString,1}
println(typeof(b))
Array{UTF8String,1}
julia> g(a)
ERROR: MethodError: `g` has no method matching g(::Array{ASCIIString,1})
julia> g(b)
ERROR: MethodError: `g` has no method matching g(::Array{UTF8String,1})
julia> g(b[2])
there!
julia> g(a[2])
there!
How do I make the method g(s::Vector{MyString}) accept both vector of
ASCIIString's or UTF8String's ? I expected the supertype AbstractString to
automatically match the both cases.
Thanks,
Jan
p.s. I am designing some functions that consumes filesystem paths. I
assume, it is good idea to make those paths to be ::AbstractString ; I see
many functions related to filesystem in Julia manual to consume or return
::AbstractString