# Blind destructuring of a tuple/NamedTuple?

**URL:** https://discourse.julialang.org/t/blind-destructuring-of-a-tuple-namedtuple/112861
**Category:** General Usage
**Created:** [April 12, 2024, 7:47am UTC](https://discourse.julialang.org/t/blind-destructuring-of-a-tuple-namedtuple/112861 "2024-04-12T07:47:42Z")
**Posts on this page:** 7
**Page:** 1

<div class="post-metadata">

### Author: ![Ahmed\_Salih](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/ahmed_salih/32/206579_2.png) [@Ahmed\_Salih](https://discourse.julialang.org/u/Ahmed_Salih)
#### Post date: [April 12, 2024, 7:47am UTC](https://discourse.julialang.org/t/blind-destructuring-of-a-tuple-namedtuple/112861/1 "2024-04-12T07:47:42Z")

</div>

Hello!

Could someone show me a way to achieve this:

```julia
v = (x=1, y=2)
@destructure v

println("x = $x, y = $y") 

```

Basically I want through a macro or some other way, to be able to take all the pairs/values in a tuple and assign them as variable = value, to be used later on in a function. I know of:

```julia
(x,y) = v

```

But I do not know if I will have 2 or N args. This is just a toy example.

Kind regards

---

<div class="post-metadata">

### Author: ![Raf](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/raf/32/3383_2.png) [@Raf](https://discourse.julialang.org/u/Raf)
#### Post date: [April 12, 2024, 8:06am UTC](https://discourse.julialang.org/t/blind-destructuring-of-a-tuple-namedtuple/112861/2 "2024-04-12T08:06:12Z")

</div>

`NamedTuple` destructuring is quite succinct and still explicit, and the number of values in `v` doesn’t matter:

```julia
(; x, y) = v

```

Just putting all keys into local scope sounds a bit risky to me.

---

<div class="post-metadata">

### Author: ![Ahmed\_Salih](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/ahmed_salih/32/206579_2.png) [@Ahmed\_Salih](https://discourse.julialang.org/u/Ahmed_Salih)
#### Post date: [April 12, 2024, 8:07am UTC](https://discourse.julialang.org/t/blind-destructuring-of-a-tuple-namedtuple/112861/3 "2024-04-12T08:07:20Z")

</div>

Agreed, sounds risky on paper, I just need to be able to do it to test something and see how I like it 🙂

Managed risks are okay!

---

<div class="post-metadata">

### Author: ![Benny](https://avatars.discourse-cdn.com/v4/letter/b/49beb7/32.png) [@Benny](https://discourse.julialang.org/u/Benny)
#### Post date: [April 12, 2024, 8:08am UTC](https://discourse.julialang.org/t/blind-destructuring-of-a-tuple-namedtuple/112861/4 "2024-04-12T08:08:01Z")

</div>

> [@Raf](#):
>
> Just putting all keys into local scope sounds a bit risky to me.

I agree, `println("x = $(v.x), y = $(v.y)")` would be a safer option.

---

<div class="post-metadata">

### Author: ![Raf](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/raf/32/3383_2.png) [@Raf](https://discourse.julialang.org/u/Raf)
#### Post date: [April 12, 2024, 8:09am UTC](https://discourse.julialang.org/t/blind-destructuring-of-a-tuple-namedtuple/112861/5 "2024-04-12T08:09:10Z")

</div>

You did notice the semicolon in my example though? `;`

Its not in your MWE and is a very different thing (propertyname desctructuring as opposed to iterable destructuring)

---

<div class="post-metadata">

### Author: ![sijo](https://avatars.discourse-cdn.com/v4/letter/s/da6949/32.png) [@sijo](https://discourse.julialang.org/u/sijo)
#### Post date: [April 12, 2024, 8:19am UTC](https://discourse.julialang.org/t/blind-destructuring-of-a-tuple-namedtuple/112861/6 "2024-04-12T08:19:43Z")

</div>

See [Unpack named tuples (does anyone know how to do it?)](https://discourse.julialang.org/t/unpack-named-tuples-does-anyone-know-how-to-do-it/32456/) for a previous discussion with a solution that comes with issues.

---

<div class="post-metadata">

### Author: ![abraemer](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/abraemer/32/51403_2.png) [@abraemer](https://discourse.julialang.org/u/abraemer)
#### Post date: [April 12, 2024, 8:49am UTC](https://discourse.julialang.org/t/blind-destructuring-of-a-tuple-namedtuple/112861/7 "2024-04-12T08:49:52Z")

</div>

If you don’t know how args there are, how would you refer to them later?
