On Friday, 20 January 2023 at 13:17:05 UTC, Ruby The Roobster wrote:
On Friday, 20 January 2023 at 13:03:18 UTC, thebluepandabear wrote:
ll
a function without instantiating said class, as functions act on the class object.

Ok, thanks.

I think D should implement something similar to `static class` but I doubt it will happen.

D isn't Java, and never will be. If you want similar functionality, you put the functions in a separate file, and add the line to the top of it:

```d
module modulename;
```

and title the file modulename.d. Then you can use this module as a .class file in java by adding

```d
import modulename;
```

to the file that uses it.

Also there is various import options such as renamed import or static import(doesn't add module to a scope thus requiring to fully qualify it)

static import, can be used to somewhat mimic namespaces, more complex scenario would be making a module consisting of public imports to group things together, but I don't think it is common in D.
https://dlang.org/spec/module.html#static_imports

```d
static import std.stdio;

void main()
{
  // nope, this function will not be resolved, compilation error
  // wrtiteln("hello");

  // ok
  std.stdio.writeln("hello");
}
```

Reply via email to