# 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:** 9\
**Page:** 1

<div class="post-metadata">

**Author:** ![chakravala](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/chakravala/32/6832_2.png) [@chakravala](https://discourse.julialang.org/u/chakravala)\
**Post date:** [February 24, 2018, 5:04pm UTC](https://discourse.julialang.org/t/array-t-initialization-syntax/9298/1 "2018-02-24T17:04:20Z")

</div>

Hello, could someone talk about what the future plans are for this syntax in 0.7? It seems there is a very long discussion about it on github, but I don’t have time to dig through hundreds of posts.

It would be convenient if someone knowledgeable could concisely summarize what exactly the motivations and future intentions for this change were.

---

<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.

---

<div class="post-metadata">

**Author:** ![Paul\_Soderlind](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/paul_soderlind/32/1753_2.png) [@Paul\_Soderlind](https://discourse.julialang.org/u/Paul_Soderlind)\
**Post date:** [February 25, 2018, 9:03pm UTC](https://discourse.julialang.org/t/array-t-initialization-syntax/9298/3 "2018-02-25T21:03:02Z")

</div>

couldn’t something shorter be used, like `Array{T}(new,2)`?

`uninitialized` is a bit cumbersome.

/Paul S

---

<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:** [February 25, 2018, 9:04pm UTC](https://discourse.julialang.org/t/array-t-initialization-syntax/9298/4 "2018-02-25T21:04:58Z")

</div>

See [https://github.com/JuliaLang/julia/pull/24400](https://github.com/JuliaLang/julia/pull/24400)

---

<div class="post-metadata">

**Author:** ![StefanKarpinski](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/stefankarpinski/32/24_2.png) [@StefanKarpinski](https://discourse.julialang.org/u/StefanKarpinski)\
**Post date:** [February 25, 2018, 11:00pm UTC](https://discourse.julialang.org/t/array-t-initialization-syntax/9298/5 "2018-02-25T23:00:38Z")

</div>

I do agree that `uninitialized` is quite long and hard to type. That was why I was on team `junk` in the `uninitialized` versus `junk` wars.

---

<div class="post-metadata">

**Author:** ![chakravala](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/chakravala/32/6832_2.png) [@chakravala](https://discourse.julialang.org/u/chakravala)\
**Post date:** [February 25, 2018, 11:23pm UTC](https://discourse.julialang.org/t/array-t-initialization-syntax/9298/6 "2018-02-25T23:23:45Z")

</div>

Yea, I also don’t like the `uninitialized`, which is why I was wondering about it. A mouthful to type… couldn’t the unitialized option be the default? Oh, well…

---

<div class="post-metadata">

**Author:** ![Tamas\_Papp](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/tamas_papp/32/25949_2.png) [@Tamas\_Papp](https://discourse.julialang.org/u/Tamas_Papp)\
**Post date:** [February 26, 2018, 6:06am UTC](https://discourse.julialang.org/t/array-t-initialization-syntax/9298/7 "2018-02-26T06:06:15Z")

</div>

> [@mbauman](#):
>
> since numbers are iterable collections themselves

If that’s the only thing preventing the shorter syntax, perhaps [#7903](https://github.com/JuliaLang/julia/issues/7903) should be revisited.

---

<div class="post-metadata">

**Author:** ![wood](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/wood/32/3735_2.png) [@wood](https://discourse.julialang.org/u/wood)\
**Post date:** [February 26, 2018, 12:35pm UTC](https://discourse.julialang.org/t/array-t-initialization-syntax/9298/8 "2018-02-26T12:35:13Z")

</div>

How about `free` or `malloc`? Just a thinking.

---

<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 26, 2018, 3:55pm UTC](https://discourse.julialang.org/t/array-t-initialization-syntax/9298/9 "2018-02-26T15:55:20Z")

</div>

Several of us have taken a shot at that one. It’s _hard_.
