질문과 답변

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 12410
RMVX 한번 얻은 아이템을 다시 얻는 방법 1 소미여우 2011.02.07 558
RMXP 한번 봐주세요. 1 Ace나 2010.11.22 704
RMXP 한번 대화하면여 음악나오고요 1 SAO(키리토) 2014.02.14 646
RMMV 한꺼번에 많이 움직이면 발동하는 이벤트 만드는 방법이? 4 파란소리 2018.06.12 120
한글화하는도중 테스트하려는데 막혀버리네요 1 file 뉴클리어비둘기 2015.07.06 201
RMVXA 한글화질문 5 file 퍼미 2014.09.27 574
한글화 할때 캐릭터 이름을 한글로 변경하면 스킬 모션이 사라지는데요 1 흠냐1313 2015.05.06 234
기타 한글화 패치 질문 2 비백 2015.06.09 236
한글화 패치 이후 폰트가 안바껴요 9 file 행복한류마군 2014.02.16 1353
기타 기타 한글화 패치 게임에서 폰트가 너무 두껍게 나올 경우 어떻게 해야 하나요? file 뭼비 2021.07.19 71
RMVX 한글화 의뢰가 안 된다면 직접 해보고자 합니다. 가르쳐주십시오! 3 실바리데 2014.03.29 2775
한글화 버전에서 특성-능력치-특별능력치 의 명중률의 의미는 무엇인가요? 5 file 오버로드 2012.12.26 1134
라이선스 RMXP 한글화 및 저작권 관련 질문이요. 4 file mansea 2013.02.18 959
턴제 전투 RMVXA 한글패치후 턴제전투시 번역되지 않은 を倒した!위치가 궁금합니다. 2 file 유리컵 2022.02.26 269
한글패치 정리된 곳이 있는데 2 드래곤규 2015.05.29 260
RMXP 한글패치 어떻게 하나요? 1 RpgmakerXp 2016.12.29 324
사이트 이용 한글판 게임에 있는 외국 게임들은 추천작으로 신청이 불가능 한가요? 5 ifeve 2016.02.19 238
RMXP 한글채팅 스크립트 2 크루즈 2011.02.13 876
RMVXA 한글이안되요.. 2 락취한스님 2016.08.20 109
RMVX 한글이름입력 2 file Thyella 2013.03.07 821
Board Pagination Prev 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 ... 516 Next
/ 516