Je veux savoir quelle est la signification de def <=>(other)
en méthodes ruby. Je veux savoir quelle est la méthode <=>
en ruby.Que fait la méthode <=>?
3
A
Répondre
2
<=>
n'est pas "dans" la méthode Ruby, #<=>
est une méthode Ruby. Cette méthode est utilisée pour des objets comparables (membres d'ensembles ordonnés) pour gagner facilement la mise en œuvre de #<
, #>
, #==
etc méthodes en incluant Comparable
mixin.
class GradeInFiveLevelScale
include Comparable
attr_reader :grade
def initialize grade; @grade = grade end
def <=> other; other.grade <=> grade end
def to_s; grade.to_s end
end
a = GradeInFiveLevelScale.new 1
b = GradeInFiveLevelScale.new 1
c = GradeInFiveLevelScale.new 3
a > b #=> false
a >= b #=> true
a > C#=> true
2
< => est l'opérateur de comparaison combiné. Elle renvoie 0 si le premier opérande est égal à la seconde, 1 si le premier opérande est supérieur au second et -1 si le premier opérande est inférieur à la seconde.
Plus d'informations sur ce SO thread.
2
Lisez ceci Equality, Comparison and Uniqueness in Ruby
. Beau blog c'est.
Questions connexes
- 1. Que fait << CONSTANT >>?
- 2. Que fait <> Java?
- 3. Que fait l'opérateur << and >?
- 4. Que fait la macro #define() <...>?
- 5. Que fait <h:messages> dans JSF?
- 6. Que fait l'opérateur MySQL <=>?
- 7. Que fait l'opérateur <> en python?
- 8. Que signifie la méthode <ClassName>?
- 9. Que fait réellement la file d'attente <T>
- 10. scalac -explaintypes: que fait "<notype><: X?" signifier?
- 11. En Java, que fait la signature de la méthode Enumeration <? étend ZipEntry> signifie?
- 12. Que fait Class <? extends ParentClass> mean?
- 13. Que fait << faire?
- 14. Que fait loc = $ ('<a>', {href: window.location}) [0]; signifier?
- 15. Que fait le classid dans un tag <object>?
- 16. Que fait la méthode registerNatives()?
- 17. Que fait la méthode "each"?
- 18. Que fait la méthode `WebViewClient.onReceivedLoginRequest`?
- 19. Que fait la méthode Container.validate()?
- 20. <meta name = "autosize" content = "off" /> - Que fait-il?
- 21. Que fait if (-f <filename>) dans Perl?
- 22. Que fait l'opérateur =>?
- 23. Que fait l'opérateur =>?
- 24. Que fait "(item) =>"?
- 25. Que fait x >>> 0?
- 26. Que fait (1U << X) faire?
- 27. Que fait << en Python?
- 28. Que fait <() dans Bash?
- 29. Que fait la flèche -> en Perl?
- 30. Que signifie <<< END >> en PHP?
Et voici un peu mince: En dehors de la comparaison à trois voies '# <=>', une autre méthode étrange que vous devez savoir est triple est égal à '# ===', ce qui est extrêmement important dans les instructions 'case', et moins dans les déclarations 'rescue'. Vérifiez également les méthodes '# eql' et' # equal'. –
@BorisStitnicky '# === est moins important dans les déclarations de sauvetage. Pas compris. Pouvez-vous m'en dire plus ou me montrer des documents pour cela? Je n'étais pas au courant de l'utilisation '===' dans le sauvetage. –
Une des choses que vous devez faire si vous voulez être bon en Ruby, c'est lire des livres, quelque chose que je ne fais plus souvent. Un de ces livres à recommander est _Exceptional Ruby_ par Avdi Grimm. Je n'ai pas lu ce livre, mais je le veux dans ma bibliothèque. J'ai appris à propos de la façon dont les exceptions sont appariées dans la déclaration 'rescue' de la conversation un peu fastidieuse d'Avdi: http://www.confreaks.com/videos/523-roa2011-exceptional-ruby –