0

I wanna create something like this, just as explained on here.

using IntervalTrees

# Create an interval tree mapping (Int, Int) intervals to Strings.
xs = IntervalMap{Int, ASCIIString}()

# Insert values
xs[(1,100)] = "Low"
xs[(101,1000)] = "Medium"
xs[(1001,10000)] = "High"

# Search for values
println(xs[(1001,10000)]) # prints "High"

# Get a value, returning a default value if not found
println(get(xs, (10001, 100000), "Not found")) # prints "Not found"

# Set a value if it's not already present
println(set(xs, (10001, 100000), "Not found"))

# Delete values
delete!(xs, (1,100))

However instead on mapping to String. I want to map to an Array. So I tried something like this.

intmap = IntervalMap{Int, Array{SubString{String},1}}

but this returns:

ERROR: LoadError: MethodError: no method matching setindex!(::Type{IntervalTrees.IntervalBTree{Int64,IntervalTrees.IntervalValue{Int64,Array{SubString{String},1}},64}}, ::Array{SubString{String},1}, ::Tuple{SubString{String},SubString{String}})

Is there even a way to achieve this?

riasc
  • 281
  • 2
  • 3
  • 15
  • 1
    `IntervalMap{Int, Array{SubString{String},1}}` is the *type* of the IntervalMap. If you add `()` after the type it constructs an empty one. Try: `intmap = IntervalMap{Int, Array{SubString{String},1}}()` – Dan Getz Nov 04 '16 at 16:33
  • What a stupid mistake. Thanks a lot. – riasc Nov 04 '16 at 16:58
  • Happens many a time. If you feel it best, you can also unask the question. – Dan Getz Nov 04 '16 at 23:10

0 Answers0