2013-11-28 2 views
1
class PubTools { 
    void update(Context context, {bool force: false}) { 
    // do something 
    } 
} 

Старый код. и я хотел бы сменить имя функции update на upgrade.создать еще одну функцию для устаревшего имени

class PubTools { 
    @deprecated 
    void update(Context context, {bool force: false}) { 
    upgrade(context, force); 
    } 
    void upgrade(Context context, {bool force: false}) { 
    // do something 
    } 
} 

Но dartanalyzer возвращается предупреждение.

что-то вроде ..

[предупреждение] 1 позиционные аргументы и следовало ожидать, но 2 найден (/ дом/sungguk/program_store/Библиотека/мясорубки _utils.dart, линия 130, колонка 8)

Как удалить предупреждение? Какой правильный грамматик?

ответ

5

Синтаксис {...} обозначает named parameters.

Вы должны вызвать метод, передавая имя именованного параметра:

upgrade(context, force: force); 

, не называя его имени параметра оно рассматривается как позиционный параметр, но есть только один позиционный параметр ожидается метод обновления, поэтому он приводит к предупреждению.

Смежные вопросы