D、设置class属性,声明符没有标识符

D, setting class property, no identifier for declarator

我刚开始使用 D,这很奇怪。这是我的代码:

class User
{
    int id;
    string name;
}

User b = new User();
b.name = "Edwin";

这是我的错误:

root@d-testing:~/Sail/source# dmd nonsense.d 
nonsense.d(8): Error: no identifier for declarator b.name
nonsense.d(8): Error: Declaration expected, not '='

我到底做错了什么?我见过的每个 class 个例子都是这样做的。

您不能像在 D 中那样直接在文件的根目录中执行代码。您可以声明新变量,例如 'User b = new User()'(尽管它可能不会像您期望的那样),但不执行任意语句,如调整 b.name.

需要将要执行的代码包装在一个main()方法中,如:

void main() {
    User b = new User();
    b.name = "Edwin";
}