87 lines
3.6 KiB
HTML
87 lines
3.6 KiB
HTML
<html>
|
|
|
|
<head>
|
|
<object type="application/x-oleobject" classid="clsid:1e2a7bd0-dab9-11d0-b93a-00c04fc99f9e">
|
|
<param name="Keyword" value="Âíóòðèáëî÷íîå îïèñàíèå ïåðåìåííîé">
|
|
<param name="Keyword" value="Îïåðàòîð îïèñàíèÿ ïåðåìåííîé">
|
|
<param name="Keyword" value="Àâòîâûâåäåíèå òèïà ïðè îïèñàíèè">
|
|
</object>
|
|
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251">
|
|
<title></title>
|
|
<link rel="StyleSheet" href="../../default.css">
|
|
</head>
|
|
|
|
<body>
|
|
<H1>Îïåðàòîð îïèñàíèÿ ïåðåìåííîé</H1>
|
|
<p>Â <b>PascalABC.NET</b> ìîæíî îïèñûâàòü ïåðåìåííûå âíóòðè
|
|
<a href="beginend.html">ñîñòàâíîãî îïåðàòîðà</a> begin-end â
|
|
ñïåöèàëüíîì îïåðàòîðå îïèñàíèÿ ïåðåìåííîé. Òàêèå îïèñàíèÿ íàçûâàþòñÿ âíóòðèáëî÷íûìè. </p>
|
|
<p>Âíóòðèáëî÷íîå îïèñàíèå èìååò îäíó èç ôîðì:</p>
|
|
<blockquote>
|
|
<b><code>var </code></b><code class="codeit"> ñïèñîê èìåí</code><code>:</code><code class="codeit">
|
|
òèï</code><code>;</code></blockquote>
|
|
<p class="pabcmain">èëè</p>
|
|
<blockquote>
|
|
<b><code>var </code></b> <code class="codeit">èìÿ</code><code>:</code><code class="codeit">
|
|
òèï </code><code>:=</code><code class="codeit"> âûðàæåíèå</code><code>;</code>
|
|
</blockquote>
|
|
<p class="pabcmain">èëè</p>
|
|
<blockquote>
|
|
<b><code>var </code></b> <code class="codeit">èìÿ</code><code>:</code><code class="codeit">
|
|
òèï </code><code>=</code><code class="codeit"> âûðàæåíèå</code><code>;</code>
|
|
<code>// Äëÿ ñîâìåñòèìîñòè ñ Delphi </code>
|
|
</blockquote>
|
|
<p class="pabcmain">èëè</p>
|
|
<blockquote>
|
|
<b><code>var </code></b> <code class="codeit">èìÿ </code><code>:=</code><code class="codeit">
|
|
âûðàæåíèå</code><code>;</code>
|
|
</blockquote>
|
|
<p class="pabcmain">Èìåíà â ñïèñêå ïåðå÷èñëÿþòñÿ ÷åðåç çàïÿòóþ. Íàïðèìåð:</p>
|
|
<blockquote>
|
|
<code><b>begin<br>
|
|
var </b>a1,a2,a3: integer;<br> <b>var </b>n: real := 5; <br>
|
|
<b>var</b> s := ' ';<b> <br>
|
|
</b>...<b><br>
|
|
end</b>.</code>
|
|
</blockquote>
|
|
<p class="pabcmain"> ïîñëåäíåì ñëó÷àå òèï ïåðåìåííîé àâòîâûâîäèòñÿ ïî òèïó
|
|
âûðàæåíèÿ â ïðàâîé ÷àñòè. Àâòîâûâåäåíèå òèïà àêòèâíî èñïîëüçóåòñÿ ïðè
|
|
èíèöèàëèçàöèè ïåðåìåííîé âûçîâîì êîíñòðóêòîðà èëè ôóíêöèè. âîçâðàùàþùåé îáúåêò:</p>
|
|
<blockquote>
|
|
<code><b>begin<br>
|
|
var</b> l := new List<integer>; <br> <strong>var</strong> a :=
|
|
Seq(1,3,5); // òèï a âûâîäèòñÿ ïî òèïó âîçâðàùàåìîãî çíà÷åíèÿ Seq: array of
|
|
integer<br>
|
|
<b>end</b>.</code>
|
|
</blockquote>
|
|
<h2>Êîðòåæíîå ïðèñâàèâàíèå ñ îïèñàíèåì ïåðåìåííûõ</h2>
|
|
<p>Êîðòåæíîå ïðèñâàèâàíèå (ðàñïàêîâêó êîðòåæà â ïåðåìåííûå) ìîæíî ñîâìåùàòü ñ îïèñàíèåì ïåðåìåííûõ:</p>
|
|
|
|
<blockquote>
|
|
<code>var t := (1,2);<br>(<strong>var </strong>a,<strong> var </strong>b) := (1,2);</code></blockquote>
|
|
<p>èëè</p>
|
|
|
|
<blockquote>
|
|
<code><strong>var</strong> (a,b) := (1,2);</code></blockquote>
|
|
<p>Ðàñïàêîâêà êîðòåæà â ïåðåìåííûå ÷àñòî èñïîëüçóåòñÿ ïðè âîçâðàùåíèè ôóíêöèåé
|
|
êîðòåæà:</p>
|
|
<blockquote>
|
|
<code><strong>function</strong> SP(a,b: real) := (a*b,2*(a+b)); </code> <br>
|
|
...<br>
|
|
<code><strong>var</strong> (S,P) := SP(2,3); </code>
|
|
</blockquote>
|
|
<h2>Èíèöèàëèçàöèÿ ëÿìáäà-âûðàæåíèåì</h2>
|
|
<p>Àâòîâûâåäåíèå òèïà ïðè îïèñàíèè íåâîçìîæíî ïðè èíèöèàëèçàöèè ïåðåìåííîé
|
|
<a href="../FuncProgramming/lambdas.html">ëÿìáäà-âûðàæåíèåì</a>:</p>
|
|
<blockquote>
|
|
<code>// <b>var</b> f := x -> x*x; // òàê íåëüçÿ!<br><strong>var</strong>
|
|
f : Func<integer,integer> := x -> x*x; </code>
|
|
</blockquote>
|
|
<p>Âíóòðèáëî÷íûå îïèñàíèÿ èñïîëüçóþòñÿ ÷òîáû íå çàõëàìëÿòü ðàçäåë îïèñàíèé
|
|
îïèñàíèåì âñïîìîãàòåëüíûõ ïåðåìåííûõ. Êðîìå ýòîãî, âíóòðèáëî÷íûå îïèñàíèÿ
|
|
ïîçâîëÿþò ââîäèòü ïåðåìåííûå èìåííî â òîò ìîìåíò êîãäà îíè âïåðâûå
|
|
ïîòðåáîâàëèñü. Îáà ýòèõ ôàêòîðà ñóùåñòâåííî ïîâûøàþò ÷èòàåìîñòü ïðîãðàììû.</p>
|
|
</body>
|
|
|
|
</html>
|