2012-01-31 20 views
0

以下示例中使用gets.chop的最佳方式是什麼?使用gets.chomp一次調用兩次嵌套的hashmap - ruby​​

user = {} 
user["list"] = [ {gets.chomp => {gets.chomp.delete(' ') => rand(1000000000000)} } ] 

我能想到的:

a = gets.chop ; b = a.delete(' ') ; user["list"] = [ {a => {b => rand(1000000000000)} } ] 

但也許有更好的辦法嗎?

有什麼想法?我可以做到這一點,而不用創造一個&乙?

回答

2

你將不得不設置一個變量來在兩個不同的地方使用輸入。雖然它可以壓縮成如下:

user["list"] = [ {a=gets.chomp => {a.delete(' ') => rand(1000000000000)} } ]

+0

出於某種原因,我在想,如果我用'A = gets.chomp'字典裏面,gets.chomp'的'價值將不會被保存...但不,這是有效的......我只希望有一種方法可以在不使用變量的情況下做到這一點。 – beoliver 2012-01-31 00:36:53

+0

如果你可以從命令行('ruby myscript.rb input')運行腳本時輸入它,你可以通過這種方式訪問​​輸入:'user [「list」] = [{ARG [0] .chomp => {ARG.shift.chomp.delete('')=> rand(1000000000000)}}]' – 2012-01-31 00:41:32

+0

有趣!我會玩這個。我正在考慮像'.storevariable'這樣的東西,所以'gets.chomp.storevariable'保存爲'storevariable',然後可以編輯... – beoliver 2012-01-31 00:53:34