clojure 提倡交互式开发,交互离不开REPL. 下面是介绍repl的使用过程
本文介绍所需以下
1 任意编辑器
2lein
使用lein模板新建一个clojure项目
在命令行下输入
$ lein new repl-test
lein会使用默认模板创建clojure项目 目录如下
repl-test/
├── CHANGELOG.md
├── LICENSE
├── README.md
├── doc
│ └── intro.md
├── project.clj
├── resources
├── src
│ └── repl_test
│ └── core.clj
└── test
└── repl_test
└── core_test.clj
core.clj中内容
(ns repl-test.core)
(defn foo
"I don't do a whole lot."
[x]
(println x "Hello, World!"))
进入项目跟目录 启动repl
$ cd repl-test
$ lein repl
看到 user=>说明启动成功了
我想调用下core.clj中的foo函数
输入 (foo “diqye”) 会报错 foo不在当前环境中 因为当前环境不在repl-test.core命名空间中
切换命名空间并require
user=> (in-ns 'repl-test.core)
看到 repl-test.core=> 就切换成功了
require
repl-test.core=> (require 'repl-test.core)
执行 (foo “diqye”) 会看到
diqye Hello, World!
修改core.clj文件
core.clj
(ns repl-test.core)
(defn foo
"I don't do a whole lot."
[x]
(println x "hello, clojure!"))
想要运行修改后的 foo需要load-file
repl-test.core=> (load-file "src/repl_test/core.clj")
#'repl-test.core/foo
repl-test.core=> (foo "diqye")
diqye hello, clojure!
nil
repl-test.core=>
不重启repl 增加第三方依赖 data.json
这个没有找到合适的方法去做,目前可以通过一个 库去做 https://github.com/clojure/tools.namespace
user=> (require ‘[clojure.tools.namespace.repl :refer [refresh]])
user=>(refresh) 会自动检测项目文件变化并加载
但是并不会自动加载project.clj新增的依赖项,只能重启repl
转载于:https://my.oschina.net/diqye/blog/728839
发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/108918.html原文链接:https://javaforall.cn
【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛
【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...