# What are uses/significance of "@" and "!" in Julia

**URL:** <https://discourse.julialang.org/t/what-are-uses-significance-of-and-in-julia/77507>\
**Category:** New to Julia\
**Tags:** question, macros\
**Created:** [March 7, 2022, 1:48pm UTC](https://discourse.julialang.org/t/what-are-uses-significance-of-and-in-julia/77507 "2022-03-07T13:48:38Z")\
**Posts on this page:** 3\
**Page:** 1

<div class="post-metadata">

**Author:** ![iAnkiit](https://avatars.discourse-cdn.com/v4/letter/i/c67d28/32.png) [@iAnkiit](https://discourse.julialang.org/u/iAnkiit)\
**Post date:** [March 7, 2022, 1:48pm UTC](https://discourse.julialang.org/t/what-are-uses-significance-of-and-in-julia/77507/1 "2022-03-07T13:48:38Z")

</div>

I am new to Julia and working on a project written in Julia.  
What are uses/significance of “@” and “!” in Julia?

---

<div class="post-metadata">

**Author:** ![tomaklutfu](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/tomaklutfu/32/2411_2.png) [@tomaklutfu](https://discourse.julialang.org/u/tomaklutfu)\
**Post date:** [March 7, 2022, 1:51pm UTC](https://discourse.julialang.org/t/what-are-uses-significance-of-and-in-julia/77507/2 "2022-03-07T13:51:24Z")

</div>

`@` is used for macro names in macro invocations. `!` is just a habit to show that the function will change a mutable input.

---

<div class="post-metadata">

**Author:** ![fgerick](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/fgerick/32/13228_2.png) [@fgerick](https://discourse.julialang.org/u/fgerick)\
**Post date:** [March 7, 2022, 1:57pm UTC](https://discourse.julialang.org/t/what-are-uses-significance-of-and-in-julia/77507/3 "2022-03-07T13:57:50Z")

</div>

`!` can also mean something else than the aforementioned convention:

```julia
julia> @doc !
  !(x)

  Boolean not. Implements three-valued logic (https://en.wikipedia.org/wiki/Three-valued_logic), returning
  missing if x is missing.

  See also ~ for bitwise not.

  Examples
  ≡≡≡≡≡≡≡≡≡≡

  julia> !true
  false

  julia> !false
  true

```
