# Unpack an object by fieldnames into local scope?

**URL:** <https://discourse.julialang.org/t/unpack-an-object-by-fieldnames-into-local-scope/52196>\
**Category:** General Usage\
**Created:** [December 21, 2020, 7:29pm UTC](https://discourse.julialang.org/t/unpack-an-object-by-fieldnames-into-local-scope/52196 "2020-12-21T19:29:03Z")\
**Posts on this page:** 4\
**Page:** 1

<div class="post-metadata">

**Author:** ![klaff](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/klaff/32/7637_2.png) [@klaff](https://discourse.julialang.org/u/klaff)\
**Post date:** [December 21, 2020, 7:29pm UTC](https://discourse.julialang.org/t/unpack-an-object-by-fieldnames-into-local-scope/52196/1 "2020-12-21T19:29:03Z")

</div>

Is there a macro or syntax that will unpack an object (such as a struct or a LabelledArray) into local variables by it’s field names?

So given

```julia
struct MyObj
    a::Int
    b::Int
end

m1 = MyObj(3,4)

```

`@splatbyfnames m1` would be equivalent to `a,b = m1`.

Thanks!

---

<div class="post-metadata">

**Author:** ![mauro3](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/mauro3/32/292_2.png) [@mauro3](https://discourse.julialang.org/u/mauro3)\
**Post date:** [December 21, 2020, 7:30pm UTC](https://discourse.julialang.org/t/unpack-an-object-by-fieldnames-into-local-scope/52196/2 "2020-12-21T19:30:01Z")

</div>

Have a look at UnPack.jl and Parameters.jl.

---

<div class="post-metadata">

**Author:** ![klaff](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/klaff/32/7637_2.png) [@klaff](https://discourse.julialang.org/u/klaff)\
**Post date:** [December 21, 2020, 7:44pm UTC](https://discourse.julialang.org/t/unpack-an-object-by-fieldnames-into-local-scope/52196/3 "2020-12-21T19:44:56Z")

</div>

Thank you. I think the (somewhat dangerous) `@unpack_...` macros in Parameters.jl are what I’m looking for.

---

<div class="post-metadata">

**Author:** ![CameronBieganek](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/cameronbieganek/32/6915_2.png) [@CameronBieganek](https://discourse.julialang.org/u/CameronBieganek)\
**Post date:** [December 21, 2020, 8:03pm UTC](https://discourse.julialang.org/t/unpack-an-object-by-fieldnames-into-local-scope/52196/4 "2020-12-21T20:03:23Z")

</div>

Another option is [StaticModules.jl](https://github.com/MasonProtter/StaticModules.jl), which provides a `@with` macro.
