簡體   English   中英

什么是 Ruby 中的 [] 運算符

[英]what is [] operator in Ruby

我不明白 [] 是 ruby​​ 中的運算符。 我想知道如果[]是一個運算符,那么這些括號{} & () 這些也是運營商嗎?

我所知道的是,語言解析器使用這些符號來解釋/編譯代碼。

這取決於您是在談論數組文字還是用於從/向數組或散列獲取或分配值的括號。

作為文字, []只是一個數組文字,是編寫Array.new簡寫。 您還詢問了{} ,它是一個散列文字,即編寫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) (或者至少他們這樣對待它)。 這就是為什么這種糖語法起作用並且看起來像“運算符”的原因,即使它是引擎蓋下的所有方法。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM