Julia编程:函数、宏、模块化与测试
1. 函数与宏的抉择
在Julia编程中,我们常常会面临一个问题:是使用函数还是宏?这就如同莎士比亚所说的“to macrotize or not to macrotize”。对于刚开始开发宏的人来说,这可能会让人感到不知所措。其实,很多时候我们可以使用常规函数来实现想要的功能,而不必依赖宏。
宏大致可以分为两类:
- 第一类 :是对一些相对简单的样板代码的包装,目的是避免重复编写代码。例如,显示宏 @assert 、 @print 、 @show 等,以及计时宏 @time 、 @benchmark 、 @btime 等。其中, @benchmark 和 @btime 属于 BenchmarkTools.jl 模块,该模块的实现虽然涉及一些辅助函数,但代码很容易理解。
- 第二类 :一些较新的Julia包是由元编程专家使用宏大量创建的。比如Flux、JuMP、Zygote和Turing等包,宏在实现特定领域语言时非常有用。由于Julia包是开源的,当使用包含复杂宏的包时,查看源代码是个不错的选择。此外,YouTube等平台上有很多相关的视频演示,例如David Sanders在JuliaCon 2021上的系列Jupyter笔记本,参考链接为https://github.com/dpsanders/
超级会员免费看
订阅专栏 解锁全文
82

被折叠的 条评论
为什么被折叠?



