seb*_*ebi 4 functional-programming function clojure
我有一些用clojure编写的测试.这是一个简单的例子:
(defn test1
[]
(start-server)
(run-pvt-and-expect "PVT-0")
(stop-server)
)
Run Code Online (Sandbox Code Playgroud)
我想返回"run-pvt-and-expect"的结果,但我需要在它之后执行其他函数.我怎么能以功能的方式在clojure中做到这一点(不使用像"let"这样的结构)?谢谢.
注意:我阅读了这个问题及其答案,但无法将其应用于我的案例.此外,评论要求提供从未给出的示例,因此请将此视为一个示例......
您可以使用finally块执行此操作.
(try
(+ 2 3)
(finally (+ 6 7)))
Run Code Online (Sandbox Code Playgroud)
产生5而不是13的结果.
这是相关的doc页面. 重要的部分是:
将评估任何最终exprs的副作用.
另一种选择是编写一个像with-open这样的宏来启动和停止服务器,同时返回正确的结果.虽然这只是将问题转移到如何编写宏,因为它需要使用let或上面的try finally构造.
| 归档时间: |
|
| 查看次数: |
887 次 |
| 最近记录: |