2012-01-31 36 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