# Array{T}(initialization,...) syntax

**URL:** <https://discourse.julialang.org/t/array-t-initialization-syntax/9298>\
**Category:** Internals & Design\
**Tags:** array\
**Created:** [February 24, 2018, 5:04pm UTC](https://discourse.julialang.org/t/array-t-initialization-syntax/9298 "2018-02-24T17:04:20Z")\
**Posts on this page:** 1\
**Showing post:** 2

<div class="post-metadata">

**Author:** ![mbauman](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/mbauman/32/31082_2.png) [@mbauman](https://discourse.julialang.org/u/mbauman)\
**Post date:** [February 25, 2018, 8:19pm UTC](https://discourse.julialang.org/t/array-t-initialization-syntax/9298/2 "2018-02-25T20:19:11Z")

</div>

We’ve long supported constructing an `Array` with a set of known contents like `Array(1:3)` or `Array(sprand(4,4,.4))`. We want to generalize this to all iterables and all Abstract Array types, but the specifying-dimension-sizes-for-an-uninitialized-array is ambiguous: Is `Array(2)` constructing `[2]` or `[#undef, #undef]` (since numbers are iterable collections themselves)? Using an explicit initialization object allows us to disambiguate this case… and also support `Array(3I, 5, 5)` and maybe other clever yet-do-be-discovered things.

---

_[View the full topic](https://discourse.julialang.org/t/array-t-initialization-syntax/9298)._
