我最近开始使用MooseX::Declare模块。我喜欢它的语法。优雅而整洁。有没有人遇到过您想在一个类中编写许多函数(其中一些很大)并且类定义运行到页面的情况?有什么解决方法可以使类定义仅具有声明的函数,而真正的函数定义在类之外?
我要找的是这样的东西-
class BankAccount {
has 'balance' => ( isa => 'Num', is => 'rw', default => 0 );
# Functions Declaration.
method deposit(Num $amount);
method withdraw(Num $amount);
}
# Function Definition.
method BankAccount::deposit (Num $amount) {
$self->balance( $self->balance + $amount );
}
method BankAccount::withdraw (Num $amount) {
my $current_balance = $self->balance();
( $current_balance >= $amount )
|| confess "Account overdrawn";
$self->balance( $current_balance - $amount );
}
我可以看到有一种使类可变的方法。有人知道怎么做吗?
最佳答案
容易(但需要添加到文档中)。
class BankAccount is mutable {
}
顺便说一句,为什么要在类之外定义方法?
你可以去
class BankAccount is mutable {
method foo (Int $bar) {
# do stuff
}
}
关于perl - 我可以使用MooseX::Declare在类之外定义函数吗?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/502463/