저는 Ruby를 처음 사용합니다. 설명 할 수없는 것을 발견했습니다.
내 코드는 다음과 같습니다.
arr1 = []
arr2 = [0]
5.times{
arr2[0] += 1
arr1 << arr2
}
puts "result = #{arr1}"
다음 결과를 기대했습니다.
result = [[1],[2],[3],[4],[5]]
그러나 이것은 내가 얻는 결과입니다.
result = [[5],[5],[5],[5],[5]]
누군가 왜 이런 일이 발생하는지 설명해 줄 수 있습니까? 어떻게 고칠 수 있습니까?
많은 감사합니다.
따라서 arr1의 값을 arr2에 더하는 것이 아닙니다. 실제로 arr1 자체를 arr2에 추가하고 있습니다. 그런 다음 arr1을 arr2에 다시 추가합니다. 이제 두 번 같은 배열이 있습니다.
대신 arr1의 복사본을 arr2에 추가 할 수 있습니다.
arr1 << arr2.dup
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다