2010-03-24 40 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]