2010-03-24 38 views
2

查找返回值:“直接访问”,而不在这个红宝石例子引用

puts ["Dog","Cat","Gates"][1] 

这将输出Cat红宝石让我可以直接访问创建的“匿名”阵列。

如果我试试这个在PHP,但是:

echo array("Dog","Cat,"Gates")[1] 

这是行不通的。

  • 这是什么叫,不仅涉及数组,而且所有的功能?
  • 哪里有可能?

当您知道如何调用这个“功能”时,随意更改问题标题。

+0

红宝石本应读作'放[“狗”,“猫”,“门”] [1]' – 2010-03-24 17:41:53

+0

难道你不希望PHP有一个对象的符号吗? – 2010-03-24 19:20:50

回答

1

在Ruby,[]只是一个方法调用(obj[1]obj.[](1)语法糖),这样就之间没有语义差异[“狗”,“猫”,“门”] [1]和[“狗”,“猫“,”门“]片(1)。在Ruby中看起来像“操作符”的许多语法结构都是真正的方法,它们通常可以在您自己的自定义类上定义。例如:

class Foo 
    def [](index) 
    puts "you tried to get something at #{index}" 
    end 
end 

f = Foo.new 
f[12]