13、Julia编程:函数、宏、模块化与测试

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/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值