【问题标题】:Running seesaw and overtone libraries in clojure在 clojure 中运行跷跷板和泛音库
【发布时间】:2016-01-17 12:18:44
【问题描述】:

我想在一个项目中使用泛音和跷跷板命名空间。但是,当我加载它们时,似乎有一个名为 (select) 的共享函数,它存在于 seesaw.core 和 overtone.core ((seesaw.core/select) (overtone.core/select)) 中,为什么我无法加载项目中的两个命名空间。我怎么能想出这个?将refer:exclude 关键字一起使用是一个选项吗?

【问题讨论】:

    标签: clojure namespaces


    【解决方案1】:

    虽然许多教程和示例使用use 函数或ns 形式中的:use 子句,但在实际代码中最好不要这样做。优选的形式如下:

    (ns foo.bar
      (:require [a.something :as some]
                [b.another :as a]))
    
    (some/f)
    
    (a/f)
    

    函数完全不同且明确,这也使代码更易于阅读和重构 - 您可以清楚地表明所使用的定义来自何处。

    【讨论】:

    • 这是真的吗:因为use 还加载了函数(vars)的命名空间规范,它使 vars 相互冲突,从而阻止命名空间加载 healthy ,而require 不这样做?这就是为什么它可以与 require 一起使用?
    猜你喜欢
    • 2014-03-06
    • 2016-05-31
    • 2012-08-20
    • 1970-01-01
    • 1970-01-01
    • 2014-03-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多