This surprised me:

function hello(data::Array{AbstractString, 1})
  map(println, data)
end

julia> function hello(data::AbstractString)
       println(data)
       end
hello (generic function with 1 method)

julia> hello("hello")
hello

julia> function hello_array(data::Array{AbstractString, 1})
         map(println, data)
       end
hello_array (generic function with 1 method)

julia> hello_array(["Hello"])
ERROR: MethodError: `hello_array` has no method matching 
hello_array(::Array{ASCIIString,1})

I had expected that Array{AbstractString, 1} meant "1-d array of anything 
string-like" and that passing an 
array of ASCIIString would qualify, but I must be missing something central.

How would I declare a function parameter that is an array that can hold any 
string type?

Many thanks for any pointers.

Stefan

Reply via email to