作为一个来自Ruby世界的人,我立即理解了为什么Crystal选择不实现for
方法。但接着我惊讶地发现,Crystal为宏实现了for
方法。更令我惊讶的是,宏不允许使用可枚举(.each
等)语法(即{% ["one", "two", "three"].each do |value| %}
不是有效的宏语法)。
这种语法差异是否有逻辑上的原因?答案可能只是"因为开发人员决定宏语法看起来像x,而非宏语法看起来像y",但我猜测一定还有其他原因(任意的语法不一致似乎是一个缺陷)。
谢谢!