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.And people bash Javascript as if it was the devil when thinks like this exist on other languages.
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
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.