질문과 답변

Extra Form



루비 언어를 공부하고 있는데요, 이 책에는 제가 궁금한게 안 나와 있더라고요.


예를 들어


def create_background
    @sprite1 = Sprite.new
    @sprite1.bitmap = Cache.title1( $data_system.title1_name )


여기서 @ ←이건 무엇을 뜻하는 건가요? 많이 쓰이던데





Comment '5'
  • ?
    스리아씨 2014.01.03 10:37

    뭐 호출할때 사용하는거 아닌가여
    이벤트로 스크립트를 이용해 메뉴같은거 불러올때 @game 어쩌구로 불러오는거보면..

  • ?
    AltusZeon 2014.01.03 11:56

    인스턴스 변수를 의미하는 겁니다.

    지역 변수는 소문자(또는 _)로 시작하고
    전역 변수는 $로 시작하고
    인스턴스 변수는 @로 시작하고
    클래스 변수는 @@로 시작하고
    상수는 대문자로 시작합니다.

  • profile
    Omegaroid 2014.01.03 15:18
    인스턴스 변수이고요. 간단히 예를 들어볼께요.
    #=====================================================
    class TestTest
    attr_accessor :variable1

    def initialize #클래스 생성 시 작동
    @variable1 = 11 #인스턴스 변수
    $variable2 = 22 #글로벌 변수
    end
    end

    a = TestTest.new

    print(@variable1)
    print($variable2)
    print(a.variable1)
    #=====================================================
    #결과값
    # nil / 22 / 11
    #=====================================================
    여기서 @variable1은 인스턴스 변수이고, $variable2 는 글로벌 변수입니다. 글로벌 변수는 어느 곳에서나 참조할 수 있는 강력한 변수이고, 인스턴스 변수는 그냥 쓰면 특정 범위(주로 클래스 내부)에서만 참조할 수 있는 변수라고 보시면 되겠습니다.

    따라서 print(@variable1)라는 명령을 실행했을때 현 상황에서 클래스 외부에서 명령을 실행해서 인스턴스 변수를 참조하는건 불가능하므로 nil이라는 결과값이 나옵니다. 반면 print($variable2)라는 명령에서는 어디서나 참조하는 글로벌 변수를 나타내므로 22라는 결과값이 제대로 나옵니다.

    클래스 내부에 있는 인스턴스 변수를 클래스 외부에서 참조하는 방법은 이렇습니다. TestTest 클래스 맨 처음에 보시면 attr_accessor :variable1 라는 구문이 있는데, 이것을 추가해줌으로써 해당 인스턴수 변수의 값을 클래스 외부에서 읽거나 새로 쓰거나 할 수 있습니다. 그래서 print(a.variable1)라는 명령에서는 11이라는 값이 제대로 나오는 것이고요.

    attr_reader와 attr_writer도 있는데, 각각 읽기만 가능하게 하거나 새로 쓰기만 가능하게 하거나 하는 것들입니다.

    이런 차이점이 있습니다.
  • ?
    비첼 2014.01.04 11:03
    으아니 세상에 모두들 이렇게 친절히 답해주시다니 몸둘 바를 모르겠습니다ㅠㅠㅠㅠㅠㅠ
    안그래도 $ 표시도 몰라서 질문하려 했는데 정말 감사합니다.
  • ?

    추가답변


    클래스 변수에 대한 설명을 덧붙입니다.

    클래스 변수는 인스턴스 변수와는 다르게 모든 인스턴스가 같은 값을 공유합니다.

    아래의 예제에서 @name은 인스턴스 변수, @@the_number_of_people은 클래스 변수입니다.

    제일 아랫줄의 rgss_stop 은 프로그램을 정지하는 RGSS의 독자적인 명령어이니 무시하셔도 됩니다.


    Cap 2014-01-04 11-42-38-300.pngCap 2014-01-04 11-43-12-885.png


    클래스 변수의 참조는 위보다 아래의 방법을 많이 사용합니다.

    수정된 행 : 14행, 30~31행


    Cap 2014-01-04 11-51-24-997.pngCap 2014-01-04 11-51-38-716.png


List of Articles
종류 분류 제목 글쓴이 날짜 조회 수
공지 묻고 답하기 가이드 습작 2014.06.14 12449
스크립트 추천 RMVXA 미니게임을 하는동안 위에 점수판을 띄워주고싶은데 방법이 없을까요? 홍홍이1 2024.02.07 15
스크립트 작성 RMMV 변수에 따라 표시이미지를 다르게 띄우고 싶습니다 1 file 도Vㅏ킨 2024.06.23 15
이벤트 작성 RMVXA 스위치가 꺼질 경우 이미지를 끄게 하고 싶습니다. 1 Payroy 2024.01.05 16
에러 해결 RMMV bgm파일이 뜨지를 않아요 1 초본 2024.01.10 16
이벤트 작성 RMMV 보트가 움직여지지 않습니다. 3 file pokapoka 2024.02.19 17
맵배치 RMXP 맵칩 버그 ssplokks 2023.10.20 18
에러 해결 RMVXA rgss301파일이 복사 붙여넣기가 안됩니다 다크크리에이터 2023.11.16 18
퀘스트 작성 RMVXA 연타 이벤트가 안 작동되어요... 1 file tokki 2023.12.24 18
기본툴 사용법 RMVXA 특정 맵에서 플레이어가 움직이지 않습니다. 유_ 2023.12.25 19
액션 전투 RMMV 메인 메뉴 혹은, 현재 메뉴 화면을 새로고침 할 수 있는 방법이 궁급합니다. 니노미야 2023.11.20 19
기타 RMVXA 대사 글꼴 바꾸는법좀 알려주세요 ㅠ 극세사이불 2024.02.26 20
기본툴 사용법 RMMV 분명히 배경음악 m4a+ogg 파일 둘 다 넣었는데 게임 툴에서 인식을 못합니다 파트로클로스 2023.12.08 21
기타 RMMV 색조변경이 적용되지 않는 이벤트 무명시절 2023.01.08 21
스크립트 사용 RMVXA 전투 개시시 상태 부여 스크립트 질문 AAAA. 2023.11.14 21
이벤트 작성 RMVXA 대화 중 이벤트 멈춤 해결 방안 질문 1 이름뭐하지 2024.05.19 22
게임 배포 RMMZ 여러분들 게임 파일 단일화 어떤 프로그램으로 하시나요? 하라아아암 2023.11.22 22
에러 해결 RMXP BGM을 발견못하는 오류 file wombat 2024.01.31 22
기타 RMMV 플레이어가 팔로어를 바라보고 있다라는 스크립트를 찾고 있습니다 무명시절 2024.01.04 23
기타 RMMZ 그림을 클릭하면 이벤트 발생 1 Sian 2024.02.07 23
기타 기타 RPG 95 튕김 현상 해결방법 인큐버스 2023.01.20 24
Board Pagination Prev 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 ... 516 Next
/ 516