2017-02-27 138 views
0

我已经看到了添加目录中的Ruby加载路径大多数的答案一直围绕使用unshift,对于如:将目录添加到Ruby中的加载路径的END?

$:.unshift File.dirname(__FILE__) 

不能使用push呢?是否故意在将目录添加到加载路径时,大多数示例都使用unshiftpush

回答

1

您可以使用,但它们按顺序检查。 unshift将其置于最高优先级,push为最低优先级。

通常情况下,这并不重要,你通常没有重复的模块名称,但是如果你想重写某些东西,那么你需要早于其他路径。这使得unshift更可取。

需要注意的一点是,通常使用$LOAD_PATH而不是$:更好,因此您所做的更清晰。除非你是一位Perl老手,否则你可能不知道什么是$:,甚至有a bunch of those variables that are very similar