在Clojure 1.4中,require中的refer是什么用途?

And*_*rew 72 clojure

不使用哪些优势:refer:require已经使用过:only:use?以下是同义词吗?

(ns so.example (:use [my.lib :only [function]]))
Run Code Online (Sandbox Code Playgroud)

(ns so.example (:require [my.lib :refer [function]]))
Run Code Online (Sandbox Code Playgroud)

Ale*_*Ott 82

增加的主要思想:refer:require是摆脱完全的:use,只留下一个运营商来加载其他包.你可以:use(:require [my.lib :refer :all])... 模拟现有的

  • 请参阅http://dev.clojure.org/jira/browse/CLJ-879并链接到clojure-dev邮件列表中的讨论... (10认同)

Art*_*ldt 26

是的,他们是等价的,

:refer并且:require是构建命名空间所需的基本操作.:use更方便

  • :require 导致加载类
  • :refer 添加到名称空间的东西,它实际上只是一个地图(实际上是一些地图)
  • :use:refer+:require

它可能看起来像它,命名空间真的没有魔力

如果你创建这样的命名空间

(ns so.example (:use my.lib))
Run Code Online (Sandbox Code Playgroud)

相当于:require将是:

(ns so.example (:require [my.lib :refer [function1 function2 function3 
                                         list every function in example 
                                         here and remember to keep it 
                                         up to date ]]))
Run Code Online (Sandbox Code Playgroud)

  • 安德鲁,将`:refer`添加到`:require`的主要思想是完全摆脱`:use`.现在你可以用`(:require [my.lib:refer:all])来模拟`:use``` (16认同)