# What do ! mean for functions

**URL:** <https://discourse.julialang.org/t/what-do-mean-for-functions/44019>\
**Category:** New to Julia\
**Created:** [July 31, 2020, 6:22am UTC](https://discourse.julialang.org/t/what-do-mean-for-functions/44019 "2020-07-31T06:22:27Z")\
**Posts on this page:** 2\
**Page:** 1

<div class="post-metadata">

**Author:** ![YoungAlpha](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/youngalpha/32/16717_2.png) [@YoungAlpha](https://discourse.julialang.org/u/YoungAlpha)\
**Post date:** [July 31, 2020, 6:22am UTC](https://discourse.julialang.org/t/what-do-mean-for-functions/44019/1 "2020-07-31T06:22:27Z")

</div>

My question is probably relatively basic, but I haven’t found any information about it anywhere. On the performance tips page, some functions have `!` and some don’t. What is the meaning of `!` and are there other characters of this kind?

---

<div class="post-metadata">

**Author:** ![giordano](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/giordano/32/2166_2.png) [@giordano](https://discourse.julialang.org/u/giordano)\
**Post date:** [July 31, 2020, 6:51am UTC](https://discourse.julialang.org/t/what-do-mean-for-functions/44019/2 "2020-07-31T06:51:55Z")

</div>

By convention in Julia, the `!` at the end of a function name indicates that the function is going to modify in-place one (or more) of its arguments, commonly (but not necessarily, check the docstring) the first one. I reiterate this is a convention, nothing is enforced, but the community has been fairly consistent in following the convention.

You found many uses of in-place functions in the performance page because in-place operations tend to be very efficient, as they reuse memory and avoid extra allocations.
