challenge ローカル変数の一覧を取得

リフレクション系のお題の続編です。 ローカル変数の内容を取得して連想配列(ハッシュ、辞書など)に詰める コードを書いてください。

Pythonで表現すると、下のコードの???部分を埋めることになります。

>>> def foo():
	x = 1
	y = "hello"
	???
	return result

>>> foo()
{'y': 'hello', 'x': 1}

Posted feedbacks - Ruby

1
2
3
4
5
6
def foo
  x = 1
  y = "hello"
  Hash[*local_variables.map{|v| [v,eval(v)]}.flatten]
end
foo()                           # => {"x"=>1, "y"=>"hello"}

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
def foo
  x = 1
  y = "hello"
  local_variables.inject({}) {|result, name|
    result[name] = eval(name)
    result
  }
end

puts "{"+foo.map{|k,v| "'#{k}' : #{v}'"}.join(",")+"}"

Index

Feed

Other

Link

Pathtraq

loading...