73

:referin を使用すると、 in:requireを使用:onlyするよりもどのような利点があり:useますか? 以下は同義語ですか?

(ns so.example (:use [my.lib :only [function]]))

(ns so.example (:require [my.lib :refer [function]]))
4

3 に答える 3

84

:referに追加する主なアイデアは、:requireを完全に取り除き:use、1 つのオペレーターだけを残して他のパッケージをロードすることです。既存のものをエミュレートでき:useます(:require [my.lib :refer :all])...

于 2012-04-29T08:09:03.663 に答える
26

はい、それらは同等です、

:referおよび:requireは、名前空間を構築するために必要な基本的な操作です。:useより便利です

  • :requireクラスがロードされます
  • :refer実際には単なるマップ(実際にはいくつかのマップ)である名前空間に物事を追加します
  • :use:refer+です:require

それはそれのように見えるかもしれませんが、名前空間に魔法は本当にありません

このような名前空間を作成すると

(ns so.example (:use my.lib))

: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 ]]))
于 2012-04-27T21:35:41.890 に答える