반응형
루비 : 같은 객체를 가리 키지 않고 어떻게 변수를 복사 할 수 있습니까?
Ruby에서 원본에 대한 변경 사항이 복사본에 영향을주지 않도록 변수를 비용 부담해야합니까?
예를 들면 :
phrase1 = "Hello Jim"
phrase2 = phrase1
phrase1.gsub!("Hello","Hi")
p phrase2 #outputs "Hi Jim" - I want it to remain "Hello Jim"
이 예에서 두 변수는 동일하게 표현을 가리 킵니다. 두 번째 변수에 대한 개체를 만들고 싶지만 처음에는 동일한 정보를 포함하고 싶습니다.
복사에 사용하는 다음을 수행 할 수 있습니다.
phrase2 = phrase1.dup
또는
# Clone: copies singleton methods as well
phrase2 = phrase1.clone
복사를 전혀 방지하기 위해 이렇게 할 수도 있습니다.
phrase2 = phrase1.gsub("Hello","Hi")
대신 귀하의 예를 사용하십시오.
phrase2 = phrase1
시험 :
phrase2 = phrase1.dup
phrase1 = "Hello Jim"
# => "Hello Jim"
phrase2 = Marshal.load(Marshal.dump(phrase1))
# => "Hello Jim"
phrase1.gsub!("Hello","Hi")
# => "Hi Jim"
puts phrase2
# "Hello Jim"
puts phrase1
# "Hi Jim"
반응형
'ProgramingTip' 카테고리의 다른 글
날짜에서 요일 이름을 얻는 방법은 무엇입니까? (0) | 2020.12.04 |
---|---|
전송 속도와 비트 전송률의 차이점은 무엇입니까? (0) | 2020.12.04 |
ASP.Net MVC에서 TempData 대 세션을 사용하는 경우 (0) | 2020.12.04 |
CodeIgniter는 SQL 입력을 자동으로 방지 할 수 있습니까? (0) | 2020.12.04 |
MongoDB 연결에 대한 .NET 모범 사례? (0) | 2020.12.04 |