我写了两个 ruby 文件进行测试
测试.rb:
#!/usr/bin/ruby
def foo(bar)
bar['key'] = 'value'
end
def my_print(a)
a.each{|k,v|
puts "#{k} => #{v}"
}
end
test_drive.rb:
#!/usr/bin/ruby
require 'test.rb'
hash_test = Hash.new
foo(hash_test)
my_print(hash_test)
它按我的预期工作,输出是
键 => 值
但是当我将 test.rb 更改为
#!/usr/bin/ruby
def foo(bar)
pre_defined = {'key' => 'value'}
bar = pre_defined
end
def my_print(a)
a.each{|k,v|
puts "#{k} => #{v}"
}
end
在这里,我使用了预定义的哈希,但现在它什么也不输出。“hash_test”现在是一个空散列。请说明为什么确实会发生这种情况?