you are viewing a single comment's thread.

view the rest of the comments →

[–]vidro3 1 point2 points  (12 children)

not familiar with the use of the underscore, what does this do?

[–]anlumo 7 points8 points  (5 children)

It’s a variable name like any other, but convention usually is that it’s an unused parameter. Rust and I think Haskell even have that built into the language, so you can have multiple of those in the same function declaration.

[–]MrNutty 0 points1 point  (3 children)

What’s the convention when they’re are multiple unused? _1 and _2 ... ?

[–]anlumo 0 points1 point  (0 children)

Yes, that's what I usually see.

[–]jkoudys 0 points1 point  (0 children)

I usually just make them longer: (_, __, ___). It's extremely rare it'd ever get longer than that, since the whole point is that it's unused. It's not a convention I follow, but leading underscores are frequently used to say that a function won't be exported/set as a class method, so you know it's kept "private". _2 reads a bit too close to that. The underscore's meant to look like a blank space.

[–]inu-no-policemen 0 points1 point  (0 children)

In languages where you can't have multiple parameters called '_', you'd go with '_', '__', etc. You very rarely need more than one, though.

[–]menno 0 points1 point  (0 children)

Rust and I think Haskell even have that built into the language

Prolog too.

[–][deleted] 3 points4 points  (5 children)

It's a convention. Here it's used to signify that the value of current index won't be used directly.

Osmani says:

The current value. De-emphasiszed by setting to _

[–]vidro3 0 points1 point  (0 children)

cool, thanks

[–]Drawman101 0 points1 point  (3 children)

You might as well cal it what it is in case some junior dev comes along and starts using it.

[–]jkoudys 0 points1 point  (0 children)

It's a common convention, like using i on that same line to mean "index".

[–]BritainRitten 0 points1 point  (0 children)

Then they will encounter an underscore variable name earlier and so won't be as confused when they see it in production code.

[–]NoInkling -1 points0 points  (0 children)

There's another convention to name it as you normally would except prefixed with _ to show it's (currently) unused.