对于那些不了解Perl的autobox
的人来说,它是一个模块,它为您提供内置原语的方法,甚至可以覆盖它们。我应该在Perl中使用autobox吗?
# primitives
'a string'->toupper();
10->to(1); # returns [10, 9, 8, 7, 6, 5, 4, 3, 2, 1]
# Arrays, array refs
[qw(A B C D E)]->for_each(sub { ... });
@array->length()
# Hashes, hash refs
{ key => 'value', key2 => 'value2' }->values()
%hash->keys()
# Even specify your own base class...
use autobox SCALAR => 'Foo';
这使得整体上内建类型的感觉更像是对象,简化了一些任务,让其他人似乎更明显的方法。
但是......
的autobox
文档说有performance penalties,有些不是简单地调用对象的方法,比标准的语法更加多。它看起来似乎并不符合许多Perl发行版的标准。
是否真的值得使用autobox?
这很酷! – Geo 2009-10-05 18:20:07
这很酷,但我的一部分不能帮助,但事情“如果我想使用Ruby ...” – 2009-10-05 18:26:22
我明白为什么Java和C#做自动装箱:集合只能使用从基础对象继承的特定方法类(可能被重写),所以原始类型在塞入集合之前被装箱到它们的对象类型。 Perl没有这样的东西,所以为什么在对象中加入基元? – Powerlord 2009-10-05 18:54:21