Esiste un elenco di tutti gli operatori di ruby che è possibile ignorare? (Non quelli che non possono!)elenco di operatori ruby che possono essere sovrascritti/implementati
risposta
Ecco a table of the Ruby operators.
Quelli che sono i metodi e sovraccaricabile sono:
[ ] [ ]= Element reference, element set
** Exponentiation
! ~ + - Not, complement, unary plus and minus (method names for the last two are [email protected] and [email protected])
*/% Multiply, divide, and modulo
+ - Plus and minus
>> << Right and left shift
& Bitwise `and'
^ | Bitwise exclusive `or' and regular `or'
<= < > >= Comparison operators
<=> == === != =~ !~ Equality and pattern match operators (!= and !~ may not be defined as methods)
Il tavolo era dalla Piccone libro del 2001, ma questo è lo stesso tavolo come nel libro Ruby 1.9 Pickaxe - alcun motivo per credere che questo set degli operatori infissi cambierà mai.
Con "quelli che sono metodi e sovraccaricabili", suppongo tu intenda che uno può solo sovraccaricare gli operatori che sono metodi, no? Inoltre, mentre gli operatori "puri" non possono essere sovraccaricati, è possibile abusare di più parole chiave come parole (ad esempio 'definite?', 'Not',' or', 'begin') come nomi per nuovi metodi senza qualità infixy. – fny
In realtà,! = E! ~ Può essere sovraccaricato/definito, anche se il vecchio piccone dice che non è possibile. Già nel 2008 c'era un reclamo in merito alla mailing list e Matz ha commentato che Ruby era flessibile. –
- 1. gli operatori possono essere dichiarati come amici non-template terzi
- 2. Perché ruby-debug dice "I fotogrammi salvati possono essere incompleti"
- 3. In Ruby, Quali strutture possono essere nidificate in `rescue` in
- 4. Esiste un elenco completo di funzioni integrate che non possono essere richiamate con l'argomento parola chiave?
- 5. Elenco di tutti gli utenti che possono connettersi tramite SSH
- 6. Operatori e metodi in Ruby
- 7. Sikuli Elenco di funzioni e operatori
- 8. Perché gli operatori non possono essere sovraccaricati all'interno di una classe statica?
- 9. Cosa significa sia gli operatori * che (*) in ruby?
- 10. programmi di generazione che possono essere immesse in node.js
- 11. Applicazione di funzioni stringa a elementi che possono essere NaN
- 12. non possono essere 'virtuali'
- 13. Razionale di imporre alcuni operatori per essere membri
- 14. Esistono gemme che possono imporre le convenzioni del codice Ruby?
- 15. vals Scala possono essere modificati
- 16. File SVG in Raphael, possono essere utilizzati?
- 17. Ci sono monadi che possono essere usati come un automa?
- 18. Cool Hardware/Dispositivi che possono essere programmati in .NET?
- 19. Dati primari JPA e parametri che possono essere nulli
- 20. PHP - classe che possono essere istanziati solo da un'altra classe
- 21. metodi Javascript che non possono essere chiamati da oggetti jQuery?
- 22. Dimensione massima degli oggetti che possono essere memorizzati in NSUserDefaults
- 23. django rest framework: campi limite che possono essere aggiornati
- 24. TfidfVectorizer per corpi che non possono essere contenuti nella memoria
- 25. La chiamata richiede autorizzazioni che possono essere rifiutate dall'utente
- 26. Esistono suoni incorporati/predefiniti che possono essere utilizzati in un'app?
- 27. disuguaglianza test con colonne che possono essere nulle
- 28. Array che possono essere accesed utilizzando array [ 'name'] in C#
- 29. iOS dove salvare localmente immagini che possono essere nuovamente scaricate?
- 30. Le chiamate di funzione possono essere riordinate
** Il sovraccarico ** è l'uso dello stesso nome del metodo per diverse azioni, in cui il metodo è distinguibile solo dalla sua firma. In realtà non è possibile in Ruby. Sovrascrivere o ridefinire è il termine corretto qui. –
Grazie per il dettaglio, @platzhirsch. Ho modificato la domanda. Strano come sia generalmente chiamato overloading dell'operatore, no? – aaaidan
Beh, come me, può essere sempre pignolo riguardo all'uso dei termini e al loro significato :-) Dopotutto deriva da linguaggi come il C++, dove forse fa lo stesso, ma si basa su semantica diversa. –