/ / Ruby preguiçoso se declaração sem operador - ruby-on-rails, ruby

Ruby preguiçoso se declaração sem operador - ruby-on-rails, ruby

É possível fazer isso em ruby?

variablename = true
if variablename
puts "yes!"
end

Em vez disso

variablename = true
if variablename == true
puts "yes!"
end

Editar: também considerando ter:

variablename = 0 #which caused my problem

Eu não posso fazer isso funcionar. É um estilo de dizer, se possível? Eu estou aprendendo Ruby agora, e é possível em PHP, mas eu não sei como fazer isso direito em Ruby

Respostas:

8 para resposta № 1

claro, é possível

tudo exceto nil e false é tratado como verdadeiro em rubi. Significado:

var = 0
if var
# true!
end

var = ""
if var
# true!
end

var = nil
if var
# false
end

3 para resposta № 2

xdazz e Vlad estão corretos com suas respostas, então você precisa pegar 0 separadamente:

variable = false if variable.zero?  # if you need 0 to be false
puts "yes!" if variable             # now nil, false & 0 will be considered false

1 para resposta № 3

É possível em tudo. Em rubi, somente nil e false é considerado falso, qualquer outro valor é verdadeiro.