So I'm starting to learn Ruby and found a great resource, Learn Ruby in Y minutes. It's great, very fast paced as I expected, since I'm an experien...
For further actions, you may consider blocking this person and/or reporting abuse
One thing to think about is that the
for counter in 1..5
is really only used for looping syntax, whereas most other rubyEnumerable
methods like#map
and#reduce
have similar syntax as#each
, so consistency is likely a factor in why people prefer one over the other.Looking from that perspective it's a good option to use each.
Thank you
Given this:
I would say, yeah there's not much of a difference in terms of readability.
BUT there is a good reason. Try running this code example:
Basically,
for..in
loop can redefine things that you didn't intend to, and that can cause problems.Reference: Tutorials Point - Ruby Loops
Hey Andy, I just ran the code and it really makes much more sense to use
each
method. I believe there are use cases for thefor .. in
syntax right?Anyway, thank you for the information.
I'm on mobile right now, when I get a chance I'll run it on my laptop, but knowing that both loops act differently and for in might cause inconstancy is a great point towards each.
Thank you
So I don't have anything against the
for .. in
syntax personally, but no, there are no special use cases for it. I mean, I'm sure if you tried you could construct a situation wherefor
might be preferable to.each
, but really, it's presence in the language at this point is just vestigial.I'm not sure I've ever seen it used outside of a tutorial.
I was amused to see that Crystal-lang went so far as to remove it altogether.
Performance differences seem negligible gist.github.com/jodosha/229951
As for better/cleaner, Rubyists definitely love
.each
, and for practical purposes, it's probably worth just drinking the kook-aid rather than stirring things up with Ruby dogma.But I'm happy to hear the bikeshedding on this. 😄
I've been writing Ruby for 12-13 years and have never once used or even come across
for
in real life. Definitely bikeshedding :)More seriously though, you can't pass a lambda to a
for
loop like you caneach
that I'm aware of. Which is a huge part of Ruby's Enumerable ecosystem.Firstly, thank you for the explanation.
Secondly, I really like the
for .. in
syntax, although in Ruby (don't know if it's the same for JavaScript), counter cleanup is non existent.Thirdly (is that a word?): What is rubocop?
Rubocop link. Rubocop can analyze your code, alert you to syntax errors, and suggest style improvements.
Awesome! Is there a plugin version for VS Code?
Almost definitely. I use Atom, and there's a package for it in that editor. I'd be shocked if VSC didn't have one.
Thank you very much for the tip, I'll make sure to look for that