Deklarace (programování): Porovnání verzí

Smazaný obsah Přidaný obsah
Narovnání přesměrování Ruby (programovací jazyk)
značka: editor wikitextu 2017
Řádek 6:
| title = 2.5. Declaration of variables
| quote = [A] declaration [...] introduces just the name and type of something but allocates no storage[...].
| url = http://publications.gbdirect.co.uk/c_book/chapter2/variable_declaration.html
}}</ref>
 
== Deklarace ==
Řádek 63 ⟶ 64:
 
== Proměnné ==
V některých programovacích jazycích jsou implicitní deklarace vytvořeny při překladu, až když se s nimi překladač poprvé setká. V jiných jazycích je takový postup považovaný za fatální a během diagnostiky je zahlášena chyba. Některé jazyky původně používaly implicitní deklaraci proměnných, ale během jejich vývoje získalizískaly možnost ji vypnout (například v [[Perl]]u použitím „<code>use strict</code>“ nebo ve [[Visual Basic]]u direktivou <code>Option Explicit</code>“).
 
 
Příklady jak různé programovací jazyky reagují na nedefinované proměnné. Pod každou částí kódu je napsáno chybové hlášení (pokud nějaké vznikne):
Řádek 72:
(setf y x)
</syntaxhighlight>
 
<code>
*** - EVAL: variable X has no value
</code>
 
[[Csharp|C#]] ([[.NET Framework]])
Řádek 83 ⟶ 82:
}
</syntaxhighlight>
 
<code>
Undefined variable x
</code>
 
[[C (programovací jazyk)|C]] (GNU [[GNU Compiler Collection|GCC]] 3.4)
Řádek 95 ⟶ 93:
}
</syntaxhighlight>
 
<code>
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.)
</code>
 
[[JavaScript]] (Mozilla [[Firefox]] 1.0)
Řádek 106 ⟶ 103:
y = x
</syntaxhighlight>
 
<code>
Error: x is not defined
Source File: file:///c:/temp/foo.js
</code>
 
[[Standard ML]] (Standard ML of New Jersey v110.55)
<syntaxhighlight>
<code>
val y = x;
</syntaxhighlight>
</code>
 
<code>
stdIn:1.9 Error: unbound variable or constructor: x
</code>
 
[[MUMPS]] (Caché)
<syntaxhighlight>
<code>
Set Y = X
</syntaxhighlight>
</code>
 
<code>
<UNDEF>
</code>
 
[[MUMPS]] (GT.M)
<syntaxhighlight>
<code>
Set Y=X
</syntaxhighlight>
</code>
 
<code>
%GTM-E-UNDEF, Undefined local variable: X
</code>
 
[[OCaml]] 3.08
Řádek 139 ⟶ 132:
let y = x;;
</syntaxhighlight>
 
<code>
Unbound value x
</code>
 
[[Perl]] 5.8
Řádek 147 ⟶ 139:
my $y = $x;
</syntaxhighlight>
 
<code>
(žádná chyba)
</code>
 
<syntaxhighlight lang="Perl">
Řádek 155 ⟶ 146:
my $y = $x;
</syntaxhighlight>
 
<code>
Global symbol "$x" requires explicit package name at foo.pl line 2.
Execution of foo.pl aborted due to compilation errors.
</code>
 
[[PHP]] 5
Řádek 164 ⟶ 154:
$y = $x;
</syntaxhighlight>
<code>
(žádná chyba)
</code>
 
<syntaxhighlight lang="php">
Řádek 172 ⟶ 160:
$y = $x;
</syntaxhighlight>
<code>
PHP Notice: Undefined variable: x in foo.php on line 3
</code>
 
PHP Notice: Undefined variable: x in foo.php on line 3
[[Python]] 2.4
 
[[Python]] 2.4
<syntaxhighlight lang="Python">
x = y
</syntaxhighlight>
 
<code>
Traceback (most recent call last):
File "foo.py", line 1, in ?
x = y
NameError: name 'y' is not defined
</code>
 
[[Ruby|Ruby]] 1.8
Řádek 191 ⟶ 177:
y = x
</syntaxhighlight>
 
<code>
NameError: undefined local variable or method `x' for main:Object
from (irb):1
</code>
 
[[VBScript]] (WSH 5.6)
Řádek 201 ⟶ 186:
y = x
</syntaxhighlight>
 
<code>
(žádná chyba)
</code>
 
<syntaxhighlight lang="VB">
Řádek 211 ⟶ 195:
y = x
</syntaxhighlight>
 
<code>
(3, 1) Microsoft VBScript runtime error: Variable is undefined: 'x'
</code>
 
== Odkazy ==