For doing case insensitive comparisons, I have been using
if str1.casecmp(str2)==0
puts ‘equal’
else
puts ‘not equal’
end
Is their a way to do this with simpler syntax?
~S
For doing case insensitive comparisons, I have been using
if str1.casecmp(str2)==0
puts ‘equal’
else
puts ‘not equal’
end
Is their a way to do this with simpler syntax?
~S
On 3/21/06, Shea M. [email protected] wrote:
For doing case insensitive comparisons, I have been using
if str1.casecmp(str2)==0
puts ‘equal’
else
puts ‘not equal’
endIs their a way to do this with simpler syntax?
I find String#downcase convenient for these sorts of comparisons:
if str1.downcase == str2.downcase
puts ‘equal’
else
puts ‘not equal’
end
Jacob F.
Hi,
My suggestion is to write a simple convinience method such as:
def are_equal(str1, str2)
str1.casecmp(str2) == 0
end
irb(main):023:0> if are_equal(‘foo’, ‘Foo’)
irb(main):024:1> puts ‘equal’
irb(main):025:1> else
irb(main):026:1* puts ‘not equal’
irb(main):027:1> end
equal
–
Martins
Peter E. wrote:
class String
def eq(arg)
self.casecmp(arg ) == 0
end
end
Or you could say:
class String
alias eq casecmp
end
class String
def eq(arg)
self.casecmp(arg ) == 0
end
end
puts “Test”.eq(“test”)
true
Peter E. wrote:
class String
def eq(arg)
self.casecmp(arg ) == 0
end
endputs “Test”.eq(“test”)
true
And how can I define eq as an binary operator on String-s allowing me to
write “Test” eq “test”? (And if this is possible, how can set a priority
for such operator?)
P.
indeed good idea, but it’s not the same:
class String
alias eq2 casecmp
def eq1(arg)
self.casecmp(arg ) == 0
end
end
puts “equal1.1” if “A”.eq1(“a”)
puts “equal2.1” if “A”.eq2(“a”)
puts “equal1.2” if “A”.eq1(“b”)
puts “equal2.2” if “A”.eq2(“b”)
equal1.1
equal2.1
equal2.2
My understanding is that you can only overload existing operators
like ==, !, === but not define custom ones.
Operator overloading should be handled carefully in any case.
I think it is good thing that custom operators
are not allowed / possible.
This forum is not affiliated to the Ruby language, Ruby on Rails framework, nor any Ruby applications discussed here.
Sponsor our Newsletter | Privacy Policy | Terms of Service | Remote Ruby Jobs