![]() |
1
8
被看作是一个函数声明。如果您确实需要此代码,请使用:
|
![]() |
2
10
您在定义中忘记了变量名:
您的代码混淆了编译器,因为在语法上它无法将其与函数声明(返回
解决方案是在
|
![]() |
3
1
只是为了让它清楚地知道发生了什么。看看这个例子
它将输出什么?好吧,它会输出
当这种情况出现时,如果在语句中使用了函数样式转换,并且它看起来也像声明,编译器将始终将其作为声明。当它不能在语法上成为一个声明时(编译器将查看整行来确定),它将被视为一个表达式。因此,我们分配给内部
现在,你的情况正是如此。您试图(不小心)声明一个名为
然后,编译器继续抱怨一个未声明的默认构造函数,因为静态(正如它假定的那样)是默认构造的。但是即使您有一个x的默认构造函数,它当然仍然是错误的,因为两者都不是
你可以做到 不 做几件事就像一个宣言。首先,您可以削减整个表达式,使其不再像声明。或者只需将类型转换为。其他答案中提到了这两种消除歧义的方法:
当您试图实际声明一个对象时,有一个相似但明显的歧义。看看这个例子:
因为
|
![]() |
4
0
您应该将对象声明为
代码中有错误。 |
![]() |
5
0
这两行中的任何一行对我都有效:
尼尔·巴特沃斯指出,
|
![]() |
6
0
当然,你可以这样做:
这将更易于阅读,并且基本上具有相同的效果。 |
![]() |
Holt 111111 · 函数类reduce函数中的转发和返回类型 8 年前 |
![]() |
3XX0 · 聚合引用成员和临时生存期 9 年前 |
|
Andrew Weatherly · Javascript仅临时更改 11 年前 |