假设我已导入std.algorithm.BinaryHeap
,并希望将其removeAny
方法称为其他内容(例如,delete_min
)。如果我从std.algorithm
本身导入方法,我可以这样写:
import std.algorithm: removeAny;
alias delete_min = removeAny;
但是,我显然不能这样做,因为removeAny
是BinaryHeap
的一种方法。我怎么能把它别名别的呢?
答案 0 :(得分:6)
我认为最好的,如果不是唯一的方法是定义一个简短的扩展方法:
auto delete_min(T...)(ref BinaryHeap _this, T other_args_here) {
return _this.removeAny(other_args_here);
}
然后你可以将其称为yourthing.delete_min(other_args)
,编译器应该内联它删除另一个小层。