this post was submitted on 22 Nov 2023
278 points (98.9% liked)
196
16748 readers
2352 users here now
Be sure to follow the rule before you head out.
Rule: You must post before you leave.
founded 2 years ago
MODERATORS
you are viewing a single comment's thread
view the rest of the comments
view the rest of the comments
Ruby has a method for this :)
In Ruby,
0
and""
is truthy, so this would be a little different than the Python interpretation. You could filter with #select, but you'd typically write your code around this instead.What the fuck?
Lua is the same. Only
false
andnil
are "falsey".I remember I fixed a bug in a mod for Minetest that assumed
0
was false and caused an infinite loop.Yup :) Everything in Ruby inherits Object, too. It's a really neat language, and when you get accustomed to it, you might wonder why some other languages aren't written like it.
For the 0 value being truthy, consider that Ruby is a dynamic language. Imagine if you asked a user how many motorcycles they own. If they answer, you'll have an Integer. If they don't, you'll have nil, from NilClass. 0 is just as valid of an answer as 2, so you can do something like this:
And people bash Javascript as if it was the devil when thinks like this exist on other languages.
Python also has about 9000 alternatives that are better than this.
Allowing anything other than variables, number literals, and ':' inside list indices was a mistake.