【问题标题】:Do other languages have similar ArrayAccess features as PHP?其他语言是否具有与 PHP 类似的 ArrayAccess 功能?
【发布时间】:2011-03-13 16:44:30
【问题描述】:

长话短说,有一个名为 ArrayAccess 的 PHP 功能允许您为您的类重载 [] 运算符(我认为还有其他一些东西),因此您可以拥有一个自定义类 MyClass implements ArrayAccess 其中 $myVariable是一个实例,并做类似的事情

$myVariable[]=6;

$someVar=$myVariable[78];

在你定义了它的行为之后。

我觉得这个功能相当优雅和有用,我想知道这在其他编程语言中是否可行

谢谢!

【问题讨论】:

  • 任何适当的 OO 语言都应该允许您直接重载 [] 或通过子类化 Array。细节将取决于具体的语言。非完全面向对象的语言也可能提供这样的特性;例如,在 Perl 中,您可以使用绑定数组。

标签: php arrays programming-languages


【解决方案1】:

C++ 在运算符重载中支持这一点。

大多数 .Net 语言在索引器中都支持这一点。

【讨论】:

【解决方案2】:

Python 也支持它,通过实现 "magic" methods __getitem__ and __setitem__

有了它们,您甚至可以支持像 obj[i:j] 这样的切片。

【讨论】:

    猜你喜欢
    • 2012-09-19
    • 2016-10-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-03-11
    • 1970-01-01
    相关资源
    最近更新 更多