Как я могу перегрузить методы в Moops?
Я хотел бы перегрузить некоторые методы в Moops.
Я попробовал следующий код:
method setIdNum() {
print "Please enter ID number: ";
chomp (my $input = <STDIN>);
$self->$idNum($input);
}
method setIdNum(Int $num) {
$self->$idNum($num);
}
Но это ошибки, сказав, что setIdNum переопределен.
1 ответ
Решение
Если вы хотите мультиметоды, вы должны явно запросить их, поставив multi
напротив method
ключевое слово:
multi method setIdNum() {
print "Please enter ID number: ";
chomp (my $input = <STDIN>);
$self->$idNum($input);
}
multi method setIdNum(Int $num) {
$self->$idNum($num);
}
Вам также может понадобиться явно запросить поддержку Kavorka в объявлении вашего класса:
class Whatever {
use Kavorka qw( multi method );
...