[루비 사용자 가이드] 변수

루비/레일스 프로그래밍/루비 사용자 가이드 2009.02.05 20:31

루비에는 세 가지 종류의 변수와 한 가지 종류의 상수, 그리고 정확히 두 개의 유사변수(pseudo-variable)가 있습니다. 변수와 상수는 타입이 없습니다. 변수의 타입이 없는 것이 몇 가지
단점이 있긴 하지만, 장점이 더 많고 루비의 빠르고 쉬운(quick and easy) 철학에 어울리기 때문에
그렇게 정했습니다.

대부분의 언어에서는 변수의 타입과 변경 가능성(modifiability,상수인지 여부), 그리고 영역(scope)을 정하기 위해 미리 선언되어야 합니다. 루비에서는 변수의 선언이 필요하지 않습니다. 왜냐하면, 타입은 따로 신경써서 정의할 필요가 없고, 나머지 요소(변경 가능성과 영역)는 변수의 이름에서 명확히 드러나기 때문입니다.

식별자(identifier)의 첫번째 글자를 보면 변수가 어떤 종류의 것인지 한 눈에 알 수 있습니다.

$ 전역변수(global variable)
@ 인스턴스변수(instance variable)
[a-z] or _ 지역변수(local variable)
[A-Z] 상수(constant)

위의 이름 규칙에서 벗어나는 오직 두 가지 예외는 루비의 유사변수인 selfnil입니다. self는 항상 현재 실행중인  객체를 가리킵니다. nil은 초기화되지 않은 변수에 저장되는 의미가 없는 값입니다. 두 가지 모두 마치 지역변수인 것 처럼 이름이 붙어 있지만, self는 인터프리터에 의해 값이 관리되는 전역 변수이며 nil은 실제로는 상수입니다. 이름 규칙에서 이 둘만 예외이므로, 그리 혼란을 주는 일은 없을 겁니다.

selfnil에 값을 저장할 수 없습니다. mainself의 값으로 되어 있을 때는 탑레벨 객체를 가리킵니다.

ruby> self
   main
ruby> nil
   nil
Trackbacks 0 : Comments 0