我不明白 [] 是 ruby?? 中的運算子。我想知道如果[]是運算子,那么這些括號是什么{} & ()。這些也是運營商嗎?
我所知道的是,語言決議器使用這些符號來解釋/編譯代碼。
uj5u.com熱心網友回復:
這取決于您是在談論陣列文字還是用于從/向陣列或散列獲取或分配值的括號。
作為字面量,[]只是一個陣列字面量,是 write 的簡寫Array.new。您還詢問了 about {},這是一個散列文字,即 write 的簡寫Hash.new。括號不是文字(或“運算子”)——它們用于對事物進行分組。
正如其他人在評論中指出的那樣,作為用于獲取或分配值的“運算子”,[]與其他“運算子”并無特殊或概念上的不同。
同樣2 3是2. (3)寫作array[0]的糖,寫作也是寫作的糖array.[](0)。
這樣做的原因是陣列有一個字面上稱為[]. 您可以通過獲取陣列上的所有方法來找到它:
[].methods
# => long array including :[] (and also :[]=, by the way, for assignments)
請注意,中的括號[].methods是陣列文字,而不是“運算子”。
我沒有看過任何 Ruby 解釋器的實作,但我猜他們看到了類似的東西array[0]并將其轉換為array.[](0)(或者至少他們這樣對待它)。這就是為什么這種糖語法起作用并且看起來像“運算子”的原因,即使它是引擎蓋下的所有方法。
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/332894.html
