`b` A hidden method for Ruby String
In irb console, I have this code:
class Abc
attr_accessor :a, :b
def self.new(a, b)
@a = a
@b = b
end
end
o = Abc.new("a", "b")
o.a # => raise error Nomethod
o.b # => return string "b"Why? why o.a raise error but o.b return string b????
Let’s see new method. We add @b = b, so this method returns b. So o =
Abc.new("a", "b") => o = "b". And o.b ~= String "b".b
So I find here
documment for b method :v
Ruby support a method to returns a copied string whose encoding is ASCII-8BIT.
>> checkmark = "\u2713"
=> "✓"
>> checkmark.b
=> "\xE2\x9C\x93"
>>So, no magic here, It is just plain Ruby and we just found a mysterious method String#b