假设我已导入std.algorithm.BinaryHeap
,并且想要调用其removeAny
方法(例如delete_min
).如果我从std.algorithm
自己导入方法,我可以写这样的东西:
import std.algorithm: removeAny;
alias delete_min = removeAny;
Run Code Online (Sandbox Code Playgroud)
但是,我显然不能这样做,因为removeAny
是一种方法BinaryHeap
.我怎么能把它别名别的呢?
我认为最好的,如果不是唯一的方法是定义一个简短的扩展方法:
auto delete_min(T...)(ref BinaryHeap _this, T other_args_here) {
return _this.removeAny(other_args_here);
}
Run Code Online (Sandbox Code Playgroud)
然后你可以调用它,yourthing.delete_min(other_args)
编译器应该内联它删除另一个小层.