Ruby 2.3.0引入了安全導航語法,通過引入一個新的操作符,如果前面的語句值不是無,只會調用該方法,從而簡化了對鏈式方法調用的零處理。這是一個在C#,Groovy和Swift中已經存在的功能。例如in Groovy,語法是爲什麼Ruby使用自己的語法來安全的導航操作符?
foo?.bar
這基本上意味着所述結果值是,foo.bar除非FOO是空,在這種情況下的返回值也空和因此不會引發異常。還有C#(稱爲無效條件運算符)和Swift(稱爲可選鏈表達式)使用此表示法。
所以語法在其他語言中似乎是相當標準的。現在,爲什麼Ruby中的語法是
foo&.bar
改爲?
'foo?.bar'的意思是「調用方法'foo?',然後調用方法'bar'結果。 2.3.0是一個向後兼容的版本,你提出的語法會導致**巨大的**破壞,它至少會*需要幾年的棄用警告才能被引入。 –