질문과 답변

Extra Form

여태 스크립트를 만지면서 이런줄은 몰랐네요... ;;

 

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를 지정한 것이기 때문에 포인터같은 방식으로 주소만 복사되는 것이 아닌가 합니다만...

 

정확한 이유 좀 알 수 있을까요?

Comment '3'
  • ?
    허걱 2010.10.17 20:55

    저도 제 생각인데...

    여러 객체를 가지거나 혹은 가질 수 있는 경우는 그 주소만 참조하는게 아닌가 하네요.

    배열이나 클래스 해시등등 객체의 묶음으로 정의되는 경우는 참조만 하더군요.

    그에 비해서 숫자나 문자등 단일객체일 경우에는 그 내용이 복사되는듯 하구요....음...뭐...그냥 생각입니다;;;

  • ?
    허걱 2010.10.17 21:02

    아...  지금 읽었는데...  위에서 self.a  라고 하는건 함수가 아닌 변수를 가리키고 있습니다.

    위에서 attr_accessor :a  라고 a라는 변수를 허용하겠다라는 선언이 있고 self.a = b  라고 하는곳에서 a가 생성(b로 초기화)되었네요.  그래서 self.a  라고 변수로 사용되고 있네요. 따라서 a는 @a  와 같은 클래스 변수의 역할을 하고 있는...  변수입니다.

  • ?
    녹색주머니 2010.10.17 22:45

    흐음... 역시 그런걸까요...;

    저기에 attr_accessor 로 선언한 놈은 다른 곳에서 테스트하던 상황을 그대로 따오다보니 끌어오게된거지 별 의미는 없답니다;

     

    이거 복사해서 쓸때가 많으니 복제하는 습관을 길러야겠네요...;

     

    Sprite같은 경우에는 clone은 안되는데 array에 넣으면 복제가 되지만 과감히 주소만 따오더군요 -_- ;;;


List of Articles
종류 분류 제목 글쓴이 날짜 조회 수
공지 묻고 답하기 가이드 습작 2014.06.14 12456
이벤트 작성 RMVX 어떻게 작성하나요? 2 어성초 2020.02.13 69
RMVX 어떤 이벤트가 발생후 일정 자리에 있으면 죽기 6 푸른사신 2014.02.27 668
RMVX 어떤 영역에서 아이템을 사용하면 이벤트 발생 맬비 2015.06.25 141
RMVX 어떤 상태일때 표적율올리는 스크립트(패시브 x ) 있나요? 스트링호 2011.01.09 480
RMVX 어떤 맵에만 들어가면 렉이 걸려요 ㅠ 4 아민 2011.02.07 625
RMVX 어둡게하는것 3 불량토깡 2012.01.11 2999
RMVX 어둠속불 사진 4 file VX입문했긩 2014.01.26 942
RMVX 어두을때, 모습달라지게하기 7 file 글쓰는상어 2013.06.26 805
RMVX 어느 지점을 지나면 혼자말 하는 방법 1 휴론 2014.11.19 543
RMVX 어그로(노려짐)확률을 스킬로 설정 할 수 있을까요? 빡새 2013.07.21 703
RMVX 얇은 벽만들기 2 멍짤이 2013.03.01 1089
RMVX 얀파이 Variable Controlled Discounts 사용 질문 2 하늘바라KSND 2012.07.19 931
RMVX 액터커맨드 확장시에 새로 추가된 커맨드가 표시가 안되요 ㅠㅠ 2 톰소여동생 2010.11.03 675
RMVX 액터이동경로에대해서 1 아쳐 2015.04.17 142
RMVX 액터의 이름 입력 1 홍수 2015.02.16 305
RMVX 액터의 오프닝시 위치 처리가 자동으로 이루어집니다. 3 file 지나가는떡꼬치 2012.07.03 1149
RMVX 액터의 속성유효도를 스크립트로 나타내려면 어떻게 해야 하나요? 차진스 2012.03.14 1778
RMVX 액터스테이터스 조정과 스킬 속도 보정치 3 unuseid 2011.07.10 1303
에러 해결 RMVX 액터가 움직이지 않습니다 1 NDgames 2021.11.12 80
RMVX 액터 미지의 치환과 사용자가 캐릭터 선택에대하여 1 minibalrog 2012.03.27 2066
Board Pagination Prev 1 ... 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 ... 127 Next
/ 127