Importing struct
evilrat
evilrat666 at gmail.com
Mon Aug 13 12:44:44 UTC 2018
On Monday, 13 August 2018 at 12:34:25 UTC, Andrey wrote:
> Hello,
>
> This is my test project:
> source/app.d
> source/MyClass.d
>
> app.d:
> ------------------------------------------------
> import std.stdio;
> import MyClass;
>
> void main(string[] args)
> {
> MyClass.MyClass.parse(args); // I want just
> MyClass.parse(args);
> }
> ------------------------------------------------
>
> MyClass.d
> ------------------------------------------------
> import std.stdio;
>
> struct MyClass
> {
> static void parse(string[] args)
> {
>
> }
> }
> ------------------------------------------------
>
> In "main" function I need to write
> "MyClass.MyClass.parse(args)" bit I want just
> "MyClass.parse(args)". If I do so then I have an error:
> Error: undefined identifier parse in module MyClass.
>
> Of course function "parse" doesn't exist in this module. But it
> exists inside struct "MyClass"!
> What should I do to import my struct correctly?
That's just name collision, because module is a valid symbol you
need to be specific about what you are trying to access.
Try selective import instead
import MyClass : MyClass;
Of course if there is more symbols needed you have to specify
them as well after a comma.
Another option to save up on typing is renamed imports
import mc = MyClass;
mc.MyClass.parse(...)
More information about the Digitalmars-d-learn
mailing list