정의되지 않은 변수

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'

참조

  1. ^ "정의되지 않은 변수."2013년 7월 24일 N.D. 웹의 YourDictionary.<http://computer.yourdictionary.com/undefined-variable>.