types - 如何解决UiFrame::getConfiguration()的 “No match for =( TagGroup, RealNumber )”错误

标签 types compiler-errors dm-script

我有一个带有UIFrame函数的getConfiguration(),该函数返回TagGroup。但是,在编译脚本时(附带TEM),我收到错误No match for =( TagGroup, RealNumber ),告诉我该函数的返回值是一个实数。但是,如下面的代码所示,getConfiguration()函数显然具有TagGroup的返回类型。

class TestDialog : UIFrame{
    TagGroup getConfiguration(object self){
        TagGroup tg = NewTagGroup();
        return tg;
    }
    
    object init(object self){
        return self;
    }
}

object dialog = alloc(TestDialog).init();

TagGroup config = dialog.getConfiguration();
请注意,当我在没有安装显微镜的情况下在家尝试时,此代码可以很好地编译。因此,这可能是由插件或任何其他软件引起的。但是由于这也可能发生在其他用户身上,并且是一个非常令人困惑的错误,因此我仍然在此处发布此问题。

最佳答案

要解决此问题,只需将函数重命名为getConfiguration()以外的其他名称,例如TestDialogGetConfiguration()TestDialog_getConfiguration()getConfig()getConfigurationValues() 1,...
1使用@BmyGuest在其注释中建议的类前缀,因为这可以防止与其他类发生冲突,这也在下面的注释中进行了说明。

我不知道为什么会出现这个错误。帮助中未提及UIFrame::getConfiguration()函数。即使存在一个,定义的函数也会覆盖原始函数,或者引发签名不兼容的任何错误。

这是一个非常令人困惑的行为,任何程序员都无法预料,并且与其他编程语言甚至也不一致。函数名称根本不重要,这使人们甚至不在这里考虑此解决方案。这就是为什么我认为应在stackoverflow上提及其解决方案的问题。即使解决方案非常简单,如果您知道的话。

关于types - 如何解决UiFrame::getConfiguration()的 “No match for =( TagGroup, RealNumber )”错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65182919/

相关文章:

pointers - 戈朗 : Why selector to pointers is illegal after comparison?

c# - 你如何解决类型和对象之间常见的命名冲突?

unity3d - 更新后出现Unity错误

compiler-errors - 错误: syntax error unexpected '(' i n COBOL

python - 我如何将 .py 编译为 .exe?

scala - Scala 中的单位与无单位

dm-script - 如何保护dm脚本源代码

dm-script - 是否可以通过命令生成gtk

dm-script - GMS 中的有效 displayAt() 范围

types - 在Polymer Dart中使用带$的强类型不起作用