Question

En JavaScript, il y a un moyen utile pour tester une variable qui n'a jamais été défini à un moment donné. Par exemple, l'extrait de code suivant retourne true si la variable bob n'a pas été défini:

typeof(bob)=='undefined'

Comment puis-je obtenir le même essai en Ruby?

edit: Je cherche un test qui est tout aussi compact dans la nature. Je suis venu avec quelques approximations maladroites utilisant des exceptions et autres, mais ce ne sont pas très joli!

Était-ce utile?

La solution

defined?(variable_name)

irb(main):004:0> defined?(foo)
=> nil
irb(main):005:0> foo = 1
=> 1
irb(main):006:0> defined?(foo)
=> "local-variable"

Voici une bonne écrire sur elle.

Autres conseils

defined? est une fonction qui renvoie zéro si l'élément est indéfini.

defined? somevar
=> nil
somevar = 12
defined? somevar
=> "local-variable"

if defined?(somevar)
  do_something
end

Gardez à l'esprit que défini? retourne une chaîne si la variable est définie, nulle si elle est pas, donc utiliser le contrôle conditionnel à ses résultats. Je pense que la syntaxe fait allusion qu'il retournerait un booléen.

Tous les cas d'utilisation:

defined? ur_variable
=> nil

ur_variable= 12
defined? ur_variable
=> "local-variable"

another_variable = nil
defined? another_variable
=> "local-variable"

Peut aussi tester cette façon.

   if somevar.nil
        # not set do something
    else
        # is set do something else
    end
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top