고급강의실
2016.01.10 09:45

[RGSS2 강좌] 기초편 2. 변수와 상수

조회 수 618 추천 수 0 댓글 0
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄

RGSS2 강좌

 2. 변수와 상수
1. 변수는

변수는 값 (객체)에 붙여진 이름 같은 것입니다. 
이렇게 이름을 붙이는 것으로, 변수에서 객체를 참조 할 수 있습니다. 
참조라는 것은 데이터 자체가 아니라 개체가있는 장소 나 식별 번호를 의미합니다. 
그리고 그 오브젝트를 취득하는 것을 볼라고합니다. 

변수는 4 종류가 프리픽스 (접두사)에 의한 자구 규칙이 있습니다. 
또한 초기화되지 않은 상태에서도 사용할 수 있고 그 때의 값은 nil입니다. 

 
2. 로컬 변수

아마도 가장 많이 사용되는 변수라고 생각합니다. 
이 변수는 가장 단명으로 할당 된 장소에서만 사용할 수 있습니다. 

초기화되지 않은 때의 값은 nil하지만, 초기화되지 않은 변수는 메소드와 구별 할 수 없기 때문 NameError가 발생합니다. 
대입식이 있으면, 비록 실행되지 않아도 변수 판별됩니다. 

 var = 1 if false # 실행되지 않는다
 def method
   var
 end

 p var # => nil
 p method # => ERROR
 
3. 인스턴스 변수

앞에 @가 붙은 변수는 인스턴스에서 액세스 할 수 있습니다. 
이 변수는 개체마다 다른 값을 유지합니다. 

 class Hoge
   attr_accessor ​​: value
   def initialize
     @value = 0
   end
 end

 h1 = Hoge.new
 h2 = Hoge.new

 p h1.value, h2.value # => 0 0
 h1.value = 3
 p h1.value, h2.value # => 3 0


또한 클래스의 인스턴스 생성하여 
클래스 인스턴스 변수로 할 수 있습니다. 
인스턴스 변수 라기보다는 클래스 변수에 가깝습니다. 
클래스 변수와의 차이는 상속 된 없다는 것입니다. 

 class A
   @a = 1
   @@ b = 3
   def self.a
     @a
   end
   def self.b
     @@ b
   end
 end
 class B <A
 end

 p Aa, Ba # => 1, nil
 p Ab, Bb # => 3 세

클래스 인스턴스 변수는 클래스 메소드를 정의하고 액세스하십시오.

 
4. 클래스 변수

앞에 @@가 붙은 변수는 클래스마다 값이 유지됩니다. 
또한이 변수는 서브 클래스에 상속됩니다.

 class A
   @@ value = 0
   def initialize
     @@ value + = 1
   end
   def value
     @@ value
   end
 end
 class B <A
 end

 a = A.new
 p a.value
 b = A.new
 p a.value
 c = B.new
 p a.value, b.value, c.value # => 1, 2, 3
 
5. 전역 변수

앞에 $가 붙여진 변수는 프로그램 종료까지 값을 유지하고 
어디서나 액세스 할 곳이 있습니다. 

 $ global = 0
 class Hoge
   $ global = 1
   def plus
     $ global + = 1
   end
 end

 Hoge.new.plus
 Hoge.new.plus
 p $ global # => 3
 
6. 상수

상수는 그 이름과 같이 정해진 숫자입니다. 
프로그램 내에서 그 값이 변하지 않는 것을 정의되지만 다시 할당 할 수 있습니다. 
상수는 클래스에 대해 정의 할 수 어디서나 볼 수 있습니다. 

클래스 정의를 한 경우에도 정수가 선언되고, 그 상수 클래스 객체에 대한 참조가 만들어집니다. 
::에서 클래스 모듈의 상수를 외부 참조 · 대입 할 수 있습니다. 

 HOGE = 0
 class A
   HOGE = 1
 end
 class B <A
   HOGE = 2
   def const
     # self 상수 A 클래스의 상수 최상위 상수
     p HOGE, A :: HOGE :: HOGE
   end
 end

 p HOGE, A :: HOGE, B : HOGE # => 0, 1, 2
 B.new.const # => 2, 1, 0
 # 클래스 이름도 상수이므로 변경되면 클래스가 사라집니다.
 A = nil # => WARNING
 A.new # => NoMethodError
 
7. 변수의 범위

같은 변수 이름이 유효한 범위를 범위라고합니다. 
이 범위의 차이에서 변수 이름이 바뀌 었다고 생각합니다. 
로컬 범위 인스턴스 범위 클래스 범위 글로벌 범위 등. 

이 밖에도 이터레이터 (반복)에 새로운 변수 범위가 생성됩니다. 
이 블록 내에서 정의 된 지역 변수는 블록 밖에서는 정의되어 있지 않습니다. 
그러나 메소드의 지역 변수는 블록 내에서 참조 할 수 있습니다. 
그래서 블록 외부에서 사용하는 변수 이름을 사용하는 경우주의하십시오. 

블록이라는 것은 {...}로 둘러싸인 부분입니다. 물론 do ... end도 포함되어 있습니다. 

 a = 1
 (0 ... 10) .each {| i | a = i}
 pa # => 9
 pi # => ERROR

for-in은 each 메소드를 호출하는 구문입니다 만, 이쪽은 새로운 변수 범위를 작성하지 않습니다.

 a = 1
 for i in 0 ... 10
   a = i
 end
 pa # => 9
 pi # => 9

 

* 본강의는 번역본 강의입니다. 원문은 아래 출처에서 확인가능합니다.

출처 : http://cacaosoft.web.fc2.com/tkool/lecture/rgss2/002.html

Who's 천무

profile

도움이 필요하면 메일이나 민원실 이용해주세요.(If you need help, You can use Help desk and send mail.)

E-Mail : chunmu1@naver.com

Helpdesk : http://indiside.com/help_board

자료다운로드 문제는 민원실에 해당자료주소와 함께 요청해주시면 최대한 다운로드 복구를 해드리겠습니다.

[주요 서비스 링크]

- 아이콘 등록하기 방법 알아보기(닉네임앞에 개성있는 아이콘을 달 수 있습니다)

- 창조도시 예전자료검색[2005~2010년] (예전자료를 검색해볼 수 있습니다)

- 네코데브 에전자료검색[2013~2015년]

- 인디사이드 이용안내(인디사이드 이용방법을 알려드립니다)

- 제2회 인디사이드 게임 제작대회 공지보기

[주요 외부 서비스 링크] - 등록해두시면 창도네코의 주요내용이 배달됩니다.

- 인디사이드 페이스북

- 인디사이드 트위터

?

  1. 게임제작강좌 A-Z 색인 (2016.1.24 ver)

    Date2016.01.12 Category초급강의실 By천무 Views7384 Votes1
    read more
  2. [동영상] 게임을만들자 (1편) - 시작해봅시다-

    Date2016.01.11 Category초급강의실 By천무 Views5700 Votes5
    Read More
  3. [RGSS2 강좌] 기초편 2. 변수와 상수

    Date2016.01.10 Category고급강의실 By천무 Views618 Votes0
    Read More
  4. [RGSS2 강좌] 기초편 1. 소개

    Date2016.01.10 Category고급강의실 By천무 Views847 Votes0
    Read More
  5. Rpg Maker MV 함수 리스트(공식포럼)

    Date2016.01.10 Category고급강의실 Byplam Views1406 Votes1
    Read More
  6. 타이틀에 동영상을 넣는 플러그인 사용법

    Date2016.01.08 Category고급강의실 By러닝은빛 Views2592 Votes1
    Read More
  7. RPG Maker MV 메모리 누수 문제 해결법

    Date2016.01.07 Category고급강의실 By러닝은빛 Views4746 Votes1
    Read More
  8. [동영상] RPG Maker MV 튜토리얼 강좌 18화 적 제작 및 특정지역 전투시스템

    Date2015.12.30 Category초급강의실 By작긔 Views1640 Votes1
    Read More
  9. XP to MV 컨버터 사용법

    Date2015.12.28 Category고급강의실 By러닝은빛 Views2724 Votes0
    Read More
  10. [동영상] RPG Maker MV 튜토리얼 강좌 17화 글자 입력 퍼즐

    Date2015.12.28 Category초급강의실 By작긔 Views2432 Votes1
    Read More
  11. [동영상] RPG Maker MV 튜토리얼 강좌 16화 아이템 응용

    Date2015.12.25 Category초급강의실 By작긔 Views2620 Votes3
    Read More
  12. [동영상] RPG Maker MV 튜토리얼 강좌 15화 상자와 아이템

    Date2015.12.25 Category초급강의실 By작긔 Views2801 Votes1
    Read More
  13. [동영상] RPG Maker MV 튜토리얼 강좌 14화 버튼 퍼즐

    Date2015.12.23 Category초급강의실 By작긔 Views2109 Votes0
    Read More
  14. [동영상] RPG Maker MV 튜토리얼 강좌 13화 버튼

    Date2015.12.23 Category초급강의실 By작긔 Views1385 Votes0
    Read More
  15. [동영상] RPG Maker MV 튜토리얼 강좌 12화 숫자암호

    Date2015.12.23 Category초급강의실 By작긔 Views1567 Votes0
    Read More
  16. [동영상] RPG Maker MV 튜토리얼 강좌 11화 물체 움직이기 응용

    Date2015.12.23 Category초급강의실 By작긔 Views1332 Votes0
    Read More
  17. [동영상] RPG Maker MV 튜토리얼 강좌 10화 물체 움직이기

    Date2015.12.23 Category초급강의실 By작긔 Views1452 Votes0
    Read More
  18. [동영상] RPG Maker MV 튜토리얼 강좌 9화 타이머

    Date2015.12.23 Category초급강의실 By작긔 Views1571 Votes0
    Read More
  19. [동영상] RPG Maker MV 튜토리얼 강좌 8화 추적이벤트

    Date2015.12.23 Category초급강의실 By작긔 Views1818 Votes0
    Read More
  20. [동영상] RPG Maker MV 튜토리얼 강좌 7화 스위치를 이용한 지형만들기

    Date2015.12.23 Category초급강의실 By작긔 Views1605 Votes0
    Read More
  21. [동영상] RPG Maker MV 튜토리얼 강좌 6화 스위치의 응용

    Date2015.12.22 Category초급강의실 By작긔 Views4158 Votes2
    Read More
Board Pagination Prev 1 2 3 4 5 6 7 8 9 10 Next
/ 10






[개인정보취급방침] | [이용약관] | [제휴문의] | [후원창구] | [인디사이드연혁]

Copyright © 1999 - 2016 INdiSide.com/(주)씨엘쓰리디 All Rights Reserved.
인디사이드 운영자 : 천무(이지선) | kernys(김원배) | 사신지(김병국)