Undefined variable - Undefined variable
En udefinert variabel i kildekoden til et dataprogram er en variabel som er tilgjengelig i koden, men som ikke tidligere har blitt deklarert av den koden.
I noen programmeringsspråk gis en implisitt erklæring første gang en slik variabel oppstår på kompileringstidspunktet . På andre språk anses en slik bruk for å være tilstrekkelig alvorlig til at en diagnose blir utstedt og samlingen mislykkes.
Noen språkdefinisjoner brukte opprinnelig den implisitte deklarasjonsadferden, og etter hvert som de modnet, ga de et alternativ for å deaktivere den (f.eks. Perls " use warnings" eller Visual Basic " Option Explicit").
Eksempler
Det følgende gir noen eksempler på hvordan ulike programmeringsspråkimplementeringer reagerer på udefinerte variabler. Hver kodebit følges av en feilmelding (hvis noen).
CLISP
(setf y x)
*** - EVAL: variable X has no value
C
int main() {
int y = x;
return 0;
}
foo.c: In function `main': foo.c:2: error: `x' undeclared (first use in this function) foo.c:2: error: (Each undeclared identifier is reported only once foo.c:2: error: for each function it appears in.)
JavaScript
y = x
Error: x is not defined Source File: file:///c:/temp/foo.js
Lua
y = x
(ingen feil, fortsetter)
print(y)
nil
ML (Standard ML of New Jersey)
val y = x;
stdIn:1.9 Error: unbound variable or constructor: x
KOPPER
Set Y=X
<UNDEF>
OCaml
let y = x;;
Unbound value x
Perl
my $y = ($x // 0) + 1; # defined-or operator
(no error)
PHP 5
$y = $x;
(no error)
$y="";
$x="";
error_reporting(E_ALL);
$y = $x;
PHP Notice: Undefined variable: x in foo.php on line 3
Python 2.4
>>> x = y
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
NameError: name 'y' is not defined
REXX
signal on novalue
y = x
+++ Error 30 in line 2: Label not found
Rubin
irb(main):001:0> y = x
NameError: undefined local variable or method `x' for main:Object
from (irb):1
Tcl
% set y $x
can't read "x": no such variable
VBScript
Dim y
y = x
(no error)
Option Explicit
Dim y
y = x
(3, 1) Microsoft VBScript runtime error: Variable is undefined: 'x'