【发布时间】:2014-09-10 13:46:40
【问题描述】:
在 Clojure 或 ClojureScript 中使用 :require 时,什么时候应该使用别名,什么时候应该只挑选你使用的函数?
例子:
-
使用别名
(:require [some-package.sub as some]) (some/do-stuff "xyz") -
使用
:refer(:require [some-package.sub :refer [do-stuff]]) (do-stuff "xyz")
如果依赖项有很多你想使用的函数或者你使用了它的所有函数(不管有多少),使用别名似乎更方便,特别是因为 ClojureScript(故意)不支持:refer :all。另一方面,使用:refer 似乎是一种更“干净”的方法,尤其是在仅使用依赖项中的某些特定函数时。
在两者之间进行选择时是否还应考虑其他事项(首先这是一个正当的理由)?
我能想到的另一件事是,如果您在文件中定义了许多依赖项和/或加载您自己的函数,那么在函数调用中使用别名前缀可能会更清楚这些函数的位置即使您只使用依赖项提供的功能的一小部分,也可以找到它们。
我应该如何选择使用哪一个?还是你应该在你的开发团队中决定,只要你坚持一种方法,一切都很好?
【问题讨论】:
-
我会说它们都很棒,因为如果您在代码中看到它们,您可以检查 fns 的来源。那,你的解释很好,你的考虑很完美。
标签: clojure clojurescript