'nil'에 해당되는 글 1건

  1. 2016.01.26 루아(Lua)의 nil

 루아에는 ‘nil’이라는 자료형이 있는데 여기서 nil은 현재 선언되지 않았거나 선언은 되었는데 아무 값도 들어가 있지 않은 변수의 값을 나타낸다. 즉 ‘선언되지 않은 변수의 값’, 또는 ‘아무 것도 아닌 값’이라는 의미를 갖는 자료형이다. 예를 들어 선언되지 않은 변수 a의 값을 출력하려고 하면 nil 이 찍힌다.


print(a)
local b -- 변수 b를 지역 변수로 사용하겠다고 선언
print(b)

실행 결과

nil
nil


이 예에서 a변수는 선언되지 않은 변수이므로 print(a)라고 하면 nil이 출력된다. 변수 b는 지역 변수로 사용하겠다는 선언이 되어 있지만 아직 값이 저장되지 않은 상태이므로 print(b) 명령어도 마찬가지로 nil이 출력된다.


 nil 자체가 자료형이자 값이기 때문에 변수에 대입도 가능하다.


x = nil
y = ‘hi’
...
y = nil


위의 예에서 변수 x는 nil값으로 초기화 시켰고 변수 y는 처음에는 문자열을 대입했다가 나중에 nil을 대입했다. 어떤 변수에 nil 을 대입하면 더 이상 그 변수를 사용하지 않겠다고 선언하는 것으로 일정 시간이 지난 후에 내부 메모리에서 사용된 값은 삭제가 된다.  즉, 사용하고 있던 변수를 더이상 사용하지 않겠다고 지정하고 싶을 때도 nil 값을 대입한다. 이것을 garbage collecting 이라고 하며 자동으로 수행되며 루아는 특별한 경우를 제외하고는 프로그래머가 메모리를 관리할 필요가 없다.



Posted by 살레시오
,