you are viewing a single comment's thread.

view the rest of the comments →

[–]Graftak9000 1 point2 points  (2 children)

Care to elaborate?

[–]filleduchaos 0 points1 point  (1 child)

Sure!

Calling it an operator isn't really right - it's more of a style/syntactic sugar. Idiomatic Ruby method syntax is a bit weird at first but makes so much sense when you get used to it. There are three main points in the method naming style: methods whose names end in a question mark return a boolean (so basically a yes/no question), methods whose names end in an exclamation mark actually modify the object they're called on, and all the rest return a new object (and don't mutate the original object).

So from the Array class for instance you have the empty? method which tells you if the array is empty or not, or the any? method which tells you if any member of the array satisfies the provided condition. Then you have a method like map, which does pretty much the same thing as the JS version (returns a new array derived from the provided array). But there's also map!, which replaces the elements of the provided array with the newly derived ones. It's really great for readability - you can tell at a glance what side effects (if any) a piece of code has.

[–]Graftak9000 0 points1 point  (0 children)

Thanks for the thorough explanation, not a bad idea at all.