# Byte array puzzle

**URL:** <https://discourse.julialang.org/t/byte-array-puzzle/7663>\
**Category:** New to Julia\
**Created:** [December 9, 2017, 8:33pm UTC](https://discourse.julialang.org/t/byte-array-puzzle/7663 "2017-12-09T20:33:04Z")\
**Posts on this page:** 3\
**Page:** 1

<div class="post-metadata">

**Author:** ![tk3369](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/tk3369/32/2824_2.png) [@tk3369](https://discourse.julialang.org/u/tk3369)\
**Post date:** [December 9, 2017, 8:33pm UTC](https://discourse.julialang.org/t/byte-array-puzzle/7663/1 "2017-12-09T20:33:04Z")

</div>

When wrapping byte arrays in square brackets, Julia thinks it’s an array inside an array but only when there’s no semicolon. Interesting… What gives?

```julia
julia> b"\x01\x02"
2-element Array{UInt8,1}:
 0x01
 0x02

julia> [b"\x01\x02"]
1-element Array{Array{UInt8,1},1}:
 UInt8[0x01, 0x02]

julia> [b"\x01\x02" ;]
2-element Array{UInt8,1}:
 0x01
 0x02

```

---

<div class="post-metadata">

**Author:** ![kristoffer.carlsson](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/kristoffer.carlsson/32/22_2.png) [@kristoffer.carlsson](https://discourse.julialang.org/u/kristoffer.carlsson)\
**Post date:** [December 9, 2017, 8:39pm UTC](https://discourse.julialang.org/t/byte-array-puzzle/7663/2 "2017-12-09T20:39:02Z")

</div>

```julia
julia> @which [[1];]
vcat(arrays::Array{T,1}...) where T in Base at array.jl:1411

```

---

<div class="post-metadata">

**Author:** ![nalimilan](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/nalimilan/32/147_2.png) [@nalimilan](https://discourse.julialang.org/u/nalimilan)\
**Post date:** [December 9, 2017, 10:14pm UTC](https://discourse.julialang.org/t/byte-array-puzzle/7663/3 "2017-12-09T22:14:01Z")

</div>

Or to be more explicit: the semicolon triggers the concatenation of all the entries in its arguments. That’s not specific to byte arrays.
