0
我有一個變量,我設置了一個默認值,然後我執行一個過程。事情是,我沒有訪問塊內的變量,因爲塊有它自己的變量範圍,並且沒有訪問外部的權限。這裏是一個片段:紅寶石設置塊內的局部變量
value = ""
cmd_errors = Array.new
# Call the command line
status = POpen4.popen4(cmd) do |stdout, stderr|
output = stdout.read
error = stderr.read
if (!output.empty?)
value = JSON.parse(output) #This just creates a block scoped variable called 'value' and my local variable is still empty
else
cmd_errors << error
end
end
是否有可能允許塊寫入該局部變量?也許使用引用?
你可以在循環中使用'p output,error'。似乎'如果'情況永遠不會成真。 –
@tolgap:'p x'等同於'puts x.inspect',所以你不應該寫'p value.inspect',因爲它與'puts x.inspect.inspect'相同,這會讓糟糕的事情變得糟糕。 – Borodin