clojure - 如何在当前命名空间中应用符号 in use 子句
问题描述
我正在审查core.match 测试
(ns clojure.core.match.test.regex
(:use [clojure.core.match :only [match]])
(:use clojure.core.match.regex)
(:use clojure.test))
(deftest basic-regex
(is (= (match ["asdf"]
[#"asdf"] 1
:else 2)
1)))
当我在 clojure.1.10 中运行这些代码时,但想知道为什么
(:use clojure.core.match.regex)
有效吗?我可以理解match
正在使用,如果我不包含regex
,行为当然会失败。
谢谢你的帮助。
解决方案
当 clojureuse
命名空间时,它将执行其中的每个语句。所以在那个正则表达式文件中
(extend-type Pattern
mp/ISyntaxTag
(syntax-tag [_] ::m/regex))
模式行为由extend-type
推荐阅读
- asp.net-core - 如何在多个 API/Web 项目中使用 Serilog?
- angular - 如何在 Angular 和 rxjs 中的 Obersavble 类型的数组中查找或添加项目?
- python - 消息:使用 selenium python 向 Youtube 的搜索栏发送密钥 [search_bar.send_keys(course_name)] 时元素不可交互错误
- python - 正确的自定义可写(和可读)ModelSerializer 字段
- java - Apache Beam GroupByKey 重复事件
- javascript - 单击按钮时如何生成一组数组,而不会使第一个消失?
- python - 我正在运行的 python 版本之间的混淆
- python - python列表操作来比较元素的一部分而不是完整的元素
- python - 如何从 python 列表中的字符串中删除不需要的 html 代码?
- python - 没有找到任何参数的 Django NoReverseMatch 错误。已尝试 1 种模式