微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

将Perl的文件输入角度运算符作为通用迭代器/生成器进行重载是否合适?

我已经看到了几个模块(例如: Iterator::Simple),它们使用Perl的角度运算符作为Python生成器的近似等价物.具体来说,提供迭代值列表而不实际将整个列表加载到内存中的能力.这通常被认为是操作符功能的适当扩展,还是被认为是滥用它?

解决方法

< HANDLE> operator只是readline HANDLE函数的语法糖,它是句柄上的迭代器.如果一个对象提供迭代访问,我没有看到重载的任何问题<>为最终用户提供灵活性.

<>运算符不接近发电机,模块就是这样做的.这一切

while (<$iterator>) {...}

给你一个奇特的写作方式

while (defined ($_ = $iterator->next)) {...}

Perl是一种非常富有表现力的语言,因为它可以通过许多不同的方式解决问题.许多模块选择以这种精神提供替代接口.这允许用户编写最适合他们的方式.

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐