정의되지 않은 변수
Undefined variable컴퓨터 프로그램의 소스 코드에 정의되지 않은 변수는 코드에서 접근하지만 그 코드에 의해 선언되지 않은 변수다.[1]
일부 프로그래밍 언어에서, 그러한 변수가 컴파일 시간에 처음 마주칠 때 암묵적 선언이 제공된다.다른 언어에서는 그러한 용어가 진단서를 발급하고 컴파일이 실패할 정도로 충분히 심각한 것으로 간주된다.
일부 언어 정의는 처음에 암묵적 선언 행동을 사용했으며, 그것들이 성숙함에 따라 그것을 비활성화할 수 있는 선택권을 제공했다(예: 펄의 "use warnings" 또는 Visual Basic의 "Option Explicit").
예
다음은 다양한 프로그래밍 언어 구현이 정의되지 않은 변수에 어떻게 대응하는지 몇 가지 예를 제공한다.각 코드 조각 뒤에 오류 메시지가 나타난다(있는 경우).
클리스프
(세트로 만들다 y x) *** - EVAL: 변수 X에 값이 없음
C
인트로 본래의() { 인트로 y = x; 돌아오다 0; } foo.c: 함수 'main'에서 foo.c:2: error: 'x' undclared (이 함수에서 처음 사용) foo.c:2: error: (각 미신고 식별자는 foo.c:2: error: error:가 나타나는 각 기능에 대해 한 번만 보고된다.)
자바스크립트
y = x 오류: x가 소스 파일이 정의되지 않음: file:///c:/temp/foo.js
루아
y = x (오류 없음, 계속)
인쇄하다(y) 못을 박다
ML(뉴저지 주의 표준 ML)
발랄하게 하다 y = x; stdIn:1.9 오류: 바인딩되지 않은 변수 또는 생성자: x
덤프
Y=X 설정
<UNDEF>
OCAML
하게 하다 y = x;; Unbound 값 x
펄
나의 $y = ($x // 0) + 1; # 정의 또는 연산자 (오류 없음)
PHP 5
$y = $x; (오류 없음)
$y=""; $x=""; error_message(E_ALL); $y = $x; PHP 통지:정의되지 않은 변수: x in foo.3호선 php
파이톤 2.4
>>> x = y 트레이스백(최신 통화):파일 "<stdin>", 1행, <Module> NameError: 이름 'y'가 정의되지 않음REXX
novalue y = x의 신호2행의 ++ 오류 30: 레이블을 찾을 수 없음
루비
irb(main):001:0>y = x NameError: 정의되지 않은 로컬 변수 또는 메인에 대한 메서드 'x':오브젝트 from (irb):1 Tcl
% set y $x가 "x"를 읽을 수 없음: 해당 변수 없음VBScript
어둡다 y y = x (오류 없음)
옵션 명시적 어둡다 y y = x (3) Microsoft VBScript 런타임 오류: 변수가 정의되지 않음: 'x'
참조
- ^ "정의되지 않은 변수."2013년 7월 24일 N.D. 웹의 YourDictionary.<http://computer.yourdictionary.com/undefined-variable>.