为什么我不能:要求:参考clojurescript?

ToB*_*ced 6 namespaces clojure clojurescript

请参阅:https://github.com/clojure/clojurescript/wiki/Differences-from-Clojure#namespaces

习惯性的clojure是困扰我的:

(ns clojure-example
  (:require [clojure.set :refer [union]]))
Run Code Online (Sandbox Code Playgroud)

但惯用的clojurescript是:

(ns clojurescript-example
  (:use [clojure.set :only [union]]))
Run Code Online (Sandbox Code Playgroud)

当然,clojurescript代码将在工作的Clojure为好,但带来了恶魔谁说我应该使用require:refer,而不是!

这是什么原因?

Mic*_*zyk 8

实际上ClojureScript确实支持:require :refer并且已经支持了很长一段时间(这是我的提交:refer从2012年6月12日起引入支持).那个维基页面已经过时了.我已经在wiki上编辑了名称空间部分,以使其更新.

至于什么是惯用语,当然有人不喜欢:use,但在经过几年的生产使用后,这几乎不会使它变得单调乏味.您可以自由决定是否喜欢:require :refer.

(虽然:use实际上提供:require不具备功能的用例(:use lib.foo lib.bar lib.quux)- 在ClojureScript中确实不支持多个命名空间- 但是设计.)