질문과 답변

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 12446
RMVX 스킬장착 스크립트 제거 file SIES 2015.07.05 136
RMVX 필드에 몬스터.. 3 레더1 2017.11.05 136
이벤트 작성 RMVX 단거리 텔레포트를 구현하고 싶은데 방법이 없을까요? 2 골리버 2019.02.12 136
RMVX RPG 만들기 VX 질문 좀.....(초보) 2 Ironbeetle 2018.11.01 135
RMVX 캐릭터 정보 같은 거? 2 file 에피스 2017.06.11 134
RMVX 추적 이벤트 관련 질문. 1 file 머리큰두두 2016.01.28 134
이벤트 작성 RMVX 아이템 사용해서 15분의1확률로 무기 나오게 하는방법 뭔가요? 1 백말띠 2019.04.17 134
스크립트 작성 RMVX 이름 입력 NameInput 한글 자모음 추가하는 방법 1 file TAN009 2022.07.17 134
RMVX [현상금!!] 전투 중 몬스터(적 배틀러) 공격 애니메이션 표시 스크립트 file 레이시아 2016.12.17 133
RMVX 전투씬 설정 1 file krmojo 2018.01.10 132
RMVX 이벤트에대해 1 file 아쳐 2015.04.05 132
RMVX 이벤트가 실행이 되지않습니다 2 file _표 2015.11.22 132
RMVX VX 함정 만드는법 원펀치펜타킬 2017.06.05 131
RMVX 제가 벽면에다가 지도를 걸고 이벤트 설정을 했는데 작동이 안되네요. 2 오노래오노래신나는노래 2018.03.16 131
스크립트 추천 RMVX 스킬 턴안넘어가고 즉시시전 스크립트 듀라듀라셀 2020.12.01 130
RMVX 실행이벤트 오류 4 휴지통 2015.05.31 129
RMVX 탈것에서 내리면 이동속도가 4로 떨어져요... 3 액알의대가가되자 2018.01.20 128
RMVX 파티원끼리 같이움직이게 하고싶습니다 4 시간측정기초시계 2018.08.03 128
이벤트 작성 RMVX 몇번 이상 죽었을 때 이벤트 나오게하기 1 TAN009 2022.07.13 128
RMVX 여러 번 조사시 이벤트 실행 2 마린걸 2015.09.22 127
Board Pagination Prev 1 ... 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 Next
/ 127