여태 스크립트를 만지면서 이런줄은 몰랐네요... ;;
class A
attr_accessor :a
def initialize
b = [1,2,3]
self.a = b
b[0] += 100
p self.a
end
end
A.new
exit
라는 것을 넣을 경우 변경된 값은 b이지만 a도 함께 수치가 바뀝니다.
여기서 a가 구지 함수일 필요는 없고 변수라도 상관없죠... 뭐 그게 그거입니다만 ;
그런데 여기서 b가 array가 아니라 integer였다면.
즉,
class A
attr_accessor :a
def initialize
b = 3
self.a = b
b += 100
p self.a
end
end
A.new
exit
로 바꾸게되면 여기선 a는 b의 값을 따르지않게됩니다.
그 외에 Sprite라던가 Font같은 것들도 그런데요.
나름대로 생각하자면 이게 class를 지정한 것이기 때문에 포인터같은 방식으로 주소만 복사되는 것이 아닌가 합니다만...
정확한 이유 좀 알 수 있을까요?