Hacker News new | ask | show | jobs
by dawkins 2864 days ago
In Go single letter variables are used when they are short lived (3 or 4 lines) and in this cases I find it way more readable than long names.
3 comments

It's also perfectly acceptable (and preferred) if the code maps cleanly onto some existing mathematical terminology. 'v' is more readable than 'velocity' in the correct context.
... until it isn't.

The problem is that you get too close to the code you write, and make assumptions about its obviousness that simply aren't true. Far better to be explicit at the cost of a few extra keystrokes.

Yes, single letter variables do have their place. But this place is very limited. Consider these lines in ruby

    data.reject{|e| e.value.nil?}

    data.reject{|element| element.value.nil?}
I would always prefer the first one. My general rule of thumb is: If a variable has the scope of exactly one line, or if it is an incremental counter, use one letter.
I just read it and thought 'e' was an error.
I’ll admit to a few larger funcs where I used one letter variables. It always starts with me thinking it will be a three-line routine, then It turns into a 30 line monstrosity that I don’t realize until I get a code review comment like “wtf is ‘zz = z’ about?”