Ber*_*ard 3 struct d initialization
为了帮助我用D问题填充SO(= p),我遇到了另一个问题; 在全球范围内初始化一系列结构.注意:
struct A
{
int a;
float b;
}
A[2] as;
as[0] = {0, 0.0f};
as[1] = {5, 5.2f};
void main() {}
Run Code Online (Sandbox Code Playgroud)
结果是:
$ dmd wtf.d
wtf.d(8): no identifier for declarator as[0]
wtf.d(9): no identifier for declarator as[1]
Run Code Online (Sandbox Code Playgroud)
通过数字火星的文档,我无法真正看到任何对我来说显而易见的东西,所以我再次转向Stack Overflow的勇敢居民!我猜测错误信息与真正的问题没什么关系,因为[0] 是一个标识符(但dmd认为它是一个声明者,AFAICT查看文档,它不是)?
我不认为你可以像每个元素那样初始化元素.这会有用吗?
A[2] as = [
{0, 0.0f},
{5, 5.2f}
];
Run Code Online (Sandbox Code Playgroud)
考虑一下,如果在您的示例中,您as[0]不止一次提到过会发生什么:
as[0] = {0, 0.0f};
as[0] = {1, 1.0f};
Run Code Online (Sandbox Code Playgroud)
as[0]程序初始化的价值是什么?这变得更像是陈述而不是初始化.
请注意,在D中,您可以在特定索引处初始化数组元素,如下所示:
A[2] as = [
0: {0, 0.0f},
1: {5, 5.2f}
];
Run Code Online (Sandbox Code Playgroud)
如果你有一个更大的数组(例如A[10])并且只需要初始化一些元素,这将非常有用.有关详细信息,请参阅D参考文档中的阵列.
| 归档时间: |
|
| 查看次数: |
602 次 |
| 最近记录: |