Je commence tout juste à apprendre Ruby et j'ai écrit un programme qui génère des nombres et les affecte aux variables @one, @two, @three etc. L'utilisateur peut alors spécifier une variable à modifier en entrant son nom (par exemple un). Je dois ensuite faire quelque chose comme '@ [valueofinout] = asd'. Comment est-ce que je ferais ceci, et est-ce qu'il y a une meilleure manière comme ma façon de penser semble être découragée? J'ai trouvéUtiliser la valeur d'une variable comme nom d'une autre variable dans Ruby
x = "myvar"
myvar = "hi"
eval(x) -> "hi"
mais je ne comprends pas complètement pourquoi la deuxième ligne est nécessaire. Dans mon cas, devrais-je utiliser quelque chose comme
@one = "21"
input = "one"
input = "@" + input
changeto = "22"
eval(input) -> changeto
wow, c'est en fait un domaine où PHP domine ruby en termes de propreté de la syntaxe. http://stackoverflow.com/a/4169891/2951835 – ahnbizcad
Ruby est difficile à faire parce que c'est moche, vous avez rarement besoin de définir une variable spécifiée par l'utilisateur d'une instance, sauf si vous êtes en train de métaprogrammer. Le décodage dynamique avec des variables globales est un trou de sécurité; Si vous voulez un ensemble de variables définies par l'utilisateur, alors vous voulez probablement un hachage. – rjh