angular dart有重载方法的概念吗?

Does angular dart have a concept of overloaded methods?

我想要 3 个不同的函数,都称为“AddField”,其中每个函数都有不同的参数。根据参数,语言将知道调用哪个函数。 Delphi 如果将函数标记为“重载”,则有此概念。

  void addField(int tableID, fieldID) {
    addfield(tableID, fieldID, 0, 0)
  }

  void addField(int tableID, fieldID, groupID) {
    addfield(tableID, fieldID, groupID, 0)
  }

  void addField(int tableID, fieldID, groupID, size) {
    item = FieldItem();
    item.tableID = tableID;
    item.fieldID = fieldID;
    item.groupID = groupID;
    item.size = size;
    fieldlist.add(item);
  }

它们可以这样使用...

  void addClientFields(){
    addfield(tblIDClient, fldIDName, grpContact, 30);
    addfield(tblIDClient, fldIDActive);
    addfield(tblIDClient, fldIDDate, grpSettings);
  }

Dart 没有 Method overloading。您可以创建具有不同名称的方法或使用具有默认值的可选参数。

void addField(int tableID, fieldID, [int groupID = 0, int size = 0]) {
    item = FieldItem();
    item.tableID = tableID;
    item.fieldID = fieldID;
    item.groupID = groupID;
    item.size = size;
    fieldlist.add(item);
  }