Quiero appley Applecomparación para ser true. Actualmente
"Apple" == "Apple" # returns TRUE
"Apple" == "APPLE" # returns FALSE
ruby
string
string-comparison
Steven
fuente
fuente

casecmp: ¿un nombre tonto para un método de comparación caso- en- sensible?== 0conzero?"Apple".casecmp("APPLE").zero?Pero personalmente me gusta que Andrés responda a continuación, que usa.casecmp?En Ruby 2.4.0 tienes:
casecmp?(other_str) → true, false, or nilAquí tienes más información
fuente
casecmpbasura."aBcDeF".downcase == "abcdef"en su lugar. Mucho más legible y las ganancias de rendimiento del usocasecmpse eliminan en Ruby 2.4+.falseynilpara una API como esta ...En caso de que tenga que comparar cadenas UTF-8 ignorando mayúsculas y minúsculas:
Funciona de esta manera en Ruby 2.3.1 y versiones anteriores.
Para una huella de memoria más pequeña, puede elegir
string/multibyte:Editar , Ruby 2.4.0:
Entonces
casecmpno funciona en 2.4.0; Sin embargo, en 2.4.0 se pueden comparar cadenas UTF-8 manualmente sinactive_supportgemas:fuente
casecmp y cero? son métodos incorporados de rubí. casecmp devuelve 0 si dos cadenas son iguales, sin distinción entre mayúsculas y minúsculas? comprueba el valor cero (== 0)
fuente
0, especialmente cuando está anidado con una condición más complicada.¿Para ruby 2.4 funciona bien casecmp? para cadenas utf-8 (no se necesitan mb_chars):
pero casecmp no funciona para utf-8:
fuente