On Friday, 17 October 2025 at 19:49:07 UTC, Brother Bill wrote:
Is there any difference when declaring a variable of using const vs immutable.

Example:
```
const     int a = 3;
immutable int b = 4;

const     string c = "Greetings!";
immutable string d = "D Programmers!";
```

Yes, a `const` declaration types the value as `const`, whereas an `immutable` declaration types the value as `immutable`.

While this is somewhat of an obvious explanation, the differences are subtle.

* A `const` reference type can point at either a mutable or `immutable` value. So regardless of where the value is stored, this has implications on where you can pass the value. You cannot pass a `const` reference to an `immutable` parameter. * A non-reference type can be stored as either `const` or `immutable`, and it's effectively the same thing (value types such as `int` can be freely implicitly converted between mutability). * Taking the *address of* a `const` or `immutable` value keeps the mutability when passing around, and this has implications as to what functions can accept such parameters.

My recommendation is to use `immutable` for declaring constants. Use `const` when you will assign to data that might be either `immutable` or mutable.

-Steve

Reply via email to