Re:Doo: A Simple, Fast Programming Language Built on Rust an...
by Panzerschrek on Tuesday November 04, 2025 @02:16AM
(#45808237)
So, what if I want to pass a value of a primitive type by-reference?
How the equivalent code for the following C++ example looks like?
void Foo( int& x )
{
x= 123;
}
void Bar()
{
int x= 0;
Foo(x);
}
Re:Doo: A Simple, Fast Programming Language Built on Rust an...
by nynrathod on Tuesday November 04, 2025 @02:41AM
(#45808405)
Doolang currently does not allow you to mutate a primitive variable from another function.
Only support this as of now
fn Foo(x: Int) { x = 123; // Only modifies Foo's local copy print("inside Foo", x); // Print 123 } fn main() { let x: Int = 0; Foo(x); // x is still 0 here after Foo returns print("out x", x); // Print 0 }
For complex types (strings, arrays, maps), values are reference-counted and passed by reference. If you pass such a value to a function, you're sharing the same object—mutations affect the original. For primitives (Int, Bool), it's pass-by-value (copy).