# How to allow users to safely change package "constants"?

**URL:** <https://discourse.julialang.org/t/how-to-allow-users-to-safely-change-package-constants/115173>\
**Category:** General Usage\
**Created:** [June 4, 2024, 2:36pm UTC](https://discourse.julialang.org/t/how-to-allow-users-to-safely-change-package-constants/115173 "2024-06-04T14:36:16Z")\
**Posts on this page:** 1\
**Showing post:** 6

<div class="post-metadata">

**Author:** ![lmiq](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/lmiq/32/18314_2.png) [@lmiq](https://discourse.julialang.org/u/lmiq)\
**Post date:** [June 4, 2024, 3:40pm UTC](https://discourse.julialang.org/t/how-to-allow-users-to-safely-change-package-constants/115173/6 "2024-06-04T15:40:35Z")

</div>

> [@](#):
>
> ```julia
> function f(x, speed = soundspeed())
> ...
> end
> 
> ```

Or you can just use a unified `Options` structure, like

```julia
@kwdef struct Options{T}
    soundspeed::T = 344.0
    lightspeed::T = 3e5
end

function f(x; options=Options())
    ...
end

```

and then the user can do:

```julia
f(x; options=Options(soundspeed=500.0))

```

to change some value.

---

_[View the full topic](https://discourse.julialang.org/t/how-to-allow-users-to-safely-change-package-constants/115173)._
