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.
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:
Ruby has a method for this :)
[1] pry(main)> vars = ["one", "two", nil, "three"] => ["one", "two", nil, "three"] [2] pry(main)> vars.compact => ["one", "two", "three"]
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:
raise NoResponse unless motorcycles save_motorcycles(motorcycles)
deleted by creator
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.