Not get point Ruby operator with dot

Viewed 80

I'm familiar with Ruby operator and its work flow and use cases but at a place I'm confused with . in expression.

3.**2+1 is giving result 27

instead 3.**2 gives 9 and

3**2+1 gives 10 it is okay but I'm confuse on 3.**2+1

anything that I'm missing with dot . operator here.

Thanks in advance!

1 Answers

Operators in ruby are backed by methods. So 3 ** 2 is functionally equivalent to "call method ** on 3 and pass 2 as an argument".

You can invoke these methods directly too (1.+(2) instead of 1+2), which is what that dot does in this case. And because operators have different precedence than method calls, you're seeing these different results.

3.** 2 + 1 == 3.**(2+1)
# but
3 ** 2 + 1 == (3 ** 2) + 1
Related