# Haskey function in Julia

**URL:** https://discourse.julialang.org/t/haskey-function-in-julia/26047
**Category:** General Usage
**Created:** [July 5, 2019, 5:06pm UTC](https://discourse.julialang.org/t/haskey-function-in-julia/26047 "2019-07-05T17:06:06Z")
**Posts on this page:** 3
**Page:** 1

<div class="post-metadata">

### Author: ![bsnyh](https://avatars.discourse-cdn.com/v4/letter/b/ce7236/32.png) [@bsnyh](https://discourse.julialang.org/u/bsnyh)
#### Post date: [July 5, 2019, 5:06pm UTC](https://discourse.julialang.org/t/haskey-function-in-julia/26047/1 "2019-07-05T17:06:06Z")

</div>

I am a bit confused by a small point of the following piece of code.

```julia
function filter_walkways(ways::Vector{OpenStreetMapX.Way}, classes::Dict{String, Int}=OpenStreetMapX.PEC_CLASSES; levels::Set{Int} = Set(1:length(OpenStreetMapX.PED_CLASSES)))
      walkways = OpenStreetMapX.Way[]
      for way in walkways
           sidewalk = get(way.tags, "sidewalk", "")
           if sidewalk != "no"
               if haskey(classes, "sidewalk:$(sidewalk)") && classes["sidewalk:$(sidewalk)"] in levels
                    push!(walkways, way)
               elseif haskey(classes, way.tags["highways"]) && classes[way.tags["highway"]] in levels
                     push!(walkways, way)
               end
           end
      end
      return walkways
end

```

I was mainly confused about the `haskey(classes, "sidewalk:$(sidewalk)")`. I thought I can simply use `haskey(classes, sidewalk)` instead. Could anyone kindly let me know the reason?

---

<div class="post-metadata">

### Author: ![nilshg](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/nilshg/32/2283_2.png) [@nilshg](https://discourse.julialang.org/u/nilshg)
#### Post date: [July 5, 2019, 5:19pm UTC](https://discourse.julialang.org/t/haskey-function-in-julia/26047/2 "2019-07-05T17:19:58Z")

</div>

Presumably the keys in the `classes` Dict have an additional `"sidewalk:"` prepended compared to the `tags` coming out of the `way` object?

Assume e.g. that `sidewalk = "narrow"`, then doing `haskey(classes, sidewalk)` checks for the key `"narrow"` in the Dict, while `haskey(classes, "sidewalk:$(sidewalk)")` would check for the key `"sidewalk:narrow"`

---

<div class="post-metadata">

### Author: ![bsnyh](https://avatars.discourse-cdn.com/v4/letter/b/ce7236/32.png) [@bsnyh](https://discourse.julialang.org/u/bsnyh)
#### Post date: [July 5, 2019, 5:34pm UTC](https://discourse.julialang.org/t/haskey-function-in-julia/26047/3 "2019-07-05T17:34:08Z")

</div>

Thank you for your quick reply. I figured it out with the same as what you said, after trying some examples. 😉
