Ruby 2.3.0 introduce la sintassi di navigazione sicura che facilita la gestione nil delle chiamate al metodo concatenate introducendo un nuovo operatore che chiama il metodo solo se il valore dell'istruzione precedente non è nil. Questa è una funzionalità che esiste già ad esempio in C#, Groovy e Swift. Ad esempio in Groovy, la sintassi èPerché Ruby utilizza la propria sintassi per un operatore di navigazione sicuro?
foo?.bar
che sostanzialmente significa che il valore del risultato è quello di foo.bar meno foo è nullo, nel qual caso il valore di ritorno è anche nullo e quindi nessuna eccezione viene lanciata. Anche C# (chiamato operatori con condizionalità nullo) e Swift (chiamato espressione di concatenamento opzionale) utilizzare questa notazione.
Quindi la sintassi sembra essere abbastanza standard in altre lingue. Ora, perché in Ruby la sintassi è
foo&.bar
?
'pippo? .bar' significa" chiama metodo 'pippo?", Quindi chiama metodo 'bar' sul risultato". La versione 2.3.0 è una versione compatibile con le versioni precedenti, la tua sintassi proposta si tradurrebbe in ** massiccia ** rottura, avrebbe * almeno * bisogno di un paio di anni di avviso di deprecazione prima che potesse essere introdotta. –