내가 사용하고자하는 문제의 방법은 gem
이며 여기에 소스 (라인 17-42)는 : 당신이 볼 수 있듯이 https://github.com/rails/rails/blob/master/railties/lib/rails/generators/actions.rb메서드가 메서드의 인수를 변경하지 못하게하려면 어떻게해야합니까?
, name
은 라인 (19)의 첫 번째 인수에 할당 한 다음 message
는 name
에 할당 라인 23에서 message
은 <<
으로 라인 26에서 돌연변이가 발생합니다. 이 불행히도 첫 번째 인수로 전달하는 문자열을 메서드 외부에서 변경된 의미합니다. 내가 막을 수있는 방법
groups => { foo: ["foo (42)", "bar (42)"], bar: ["foobar (42)"] }
:
이groups = { foo: %w(foo, bar), bar: %w(foobar) }
groups.each do |group, gems|
gems.each do |name|
gem(name, "42")
end
end
이후 내 해시 gem
의 내부의 돌연변이로 인해 다음과 같습니다 : 다음과 같이
나는 배열의 해시를하고 반복하고 이 문자열 (및 해시 및 해당 배열)은 변형되었지만 메서드가 손상되지 않았습니까?
문자열을 고정하면 돌연변이가 중지되지만 예외가 발생하기 때문에! –