首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >是否有办法将“要求”和“重要性”限定在函数的内部?

是否有办法将“要求”和“重要性”限定在函数的内部?
EN

Stack Overflow用户
提问于 2016-08-04 05:48:30
回答 3查看 440关注 0票数 1

我对Clojure中的requires和imports的范围有点困惑。我是否需要只停留在函数作用域中的依赖关系?

当我做类似的事情时,我会得到显示的错误。

代码语言:javascript
复制
user=> (defn test1 [x] (require '[taoensso.timbre :as timbre]) (timbre/log x))

CompilerException java.lang.RuntimeException: No such namespace: timbre, compiling:(/tmp/form-init1203922056301029971.clj:1:57) 
EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2016-08-06 03:10:34

我不反对Grav的建议--这是一种选择--但我看不出加载依赖只用于一个函数的缺点。

偶尔也有理由使用nsin-ns临时切换文件中的命名空间。

代码语言:javascript
复制
(ns foo.bar)

... more code here ...

(ns foo.parameters [:require foo.baz :as bz])
(def my-parm (bz/inc2 42))
(ns foo.bar)

您可以使用它来使required命名空间暂时可用,但这通常是应该避免的。

和许多人一样,科林·琼斯的博客文章是我最喜欢的名称空间介绍。

票数 0
EN

Stack Overflow用户

发布于 2016-08-04 09:35:39

我不确定您将require语句从ns声明中移出的动机。require语句声明该命名空间的依赖项。

如果这些依赖项仅与名称空间的某些函数相关,则可以考虑将这些函数移到不同的名称空间中,从而释放第一个依赖空间,并创建更松散的耦合。

票数 3
EN

Stack Overflow用户

发布于 2016-08-04 06:31:57

不,这些设计只用于ns表单中。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/38759343

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档