我剛剛開始學習Ruby,並且編寫了一個程序來生成一些數字並將它們分配給變量@one,@two,@three等。然後用戶可以通過輸入它的名字來指定一個變量(例如一個)。然後我需要做一些像'@ [valueofinout] = asd'。我該如何做到這一點,有沒有更好的方式,因爲我想到的方式似乎很沮喪?我發現在Ruby中使用變量的值作爲另一個變量名
x = "myvar"
myvar = "hi"
eval(x) -> "hi"
,但我不完全理解爲什麼需要第二行。在我來說,我會使用類似可以通過此方法來檢索
@one = "21"
input = "one"
input = "@" + input
changeto = "22"
eval(input) -> changeto
哇,這實際上是PHP在語法清潔方面勝過Ruby的一個領域。 http://stackoverflow.com/a/4169891/2951835 – ahnbizcad 2015-05-09 07:06:18
Ruby很難做,因爲它很醜,除非是元編程,否則很少需要設置實例的用戶指定變量。動態地混淆全局變量是一個安全漏洞;如果你想要一組用戶定義的變量,那麼你可能需要一個散列。 – rjh 2016-11-16 17:30:21