# The at sign (@)

**URL:** <https://discourse.julialang.org/t/the-at-sign/74755>\
**Category:** New to Julia\
**Tags:** question\
**Created:** [January 17, 2022, 12:50pm UTC](https://discourse.julialang.org/t/the-at-sign/74755 "2022-01-17T12:50:21Z")\
**Posts on this page:** 4\
**Page:** 1

<div class="post-metadata">

**Author:** ![das](https://avatars.discourse-cdn.com/v4/letter/d/46a35a/32.png) [@das](https://discourse.julialang.org/u/das)\
**Post date:** [January 17, 2022, 12:50pm UTC](https://discourse.julialang.org/t/the-at-sign/74755/1 "2022-01-17T12:50:21Z")

</div>

In a number of examples involving GTK (perhaps especially using GtkReactive) the code shows things like @Window or @Frame. Is the @ required or just used by the programmer to make some kind of differentiation?

---

<div class="post-metadata">

**Author:** ![simeonschaub](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/simeonschaub/32/216566_2.png) [@simeonschaub](https://discourse.julialang.org/u/simeonschaub)\
**Post date:** [January 17, 2022, 12:58pm UTC](https://discourse.julialang.org/t/the-at-sign/74755/2 "2022-01-17T12:58:42Z")

</div>

It denotes a macro call. This is explained in the manual here:

[https://docs.julialang.org/en/v1/manual/metaprogramming/#man-macros](https://docs.julialang.org/en/v1/manual/metaprogramming/#man-macros)

---

<div class="post-metadata">

**Author:** ![arik](https://avatars.discourse-cdn.com/v4/letter/a/c4cdca/32.png) [@arik](https://discourse.julialang.org/u/arik)\
**Post date:** [January 17, 2022, 1:55pm UTC](https://discourse.julialang.org/t/the-at-sign/74755/3 "2022-01-17T13:55:31Z")

</div>

Identifyers starting with @ are, as already mentioned, macro calls. Macros are somewhat complicated, a simple explanation would be to say tey are constructs that are (typically) prepended to some code snippet, and then perform some transformations on that code _before_ it is run (they replace your code with something different). To know what kind of code you can supply to a specific macro and what it will do you have to read its documentation carefully ( for example, in a repl, type `julia>?@time` to read the documentation for the `@time`-macro).  
If you want to know exactly what a macro does to your code, try out the `@macroexpand` macro.

---

<div class="post-metadata">

**Author:** ![das](https://avatars.discourse-cdn.com/v4/letter/d/46a35a/32.png) [@das](https://discourse.julialang.org/u/das)\
**Post date:** [January 17, 2022, 2:40pm UTC](https://discourse.julialang.org/t/the-at-sign/74755/4 "2022-01-17T14:40:24Z")

</div>

Thanks to you both. I’ll study this.
