43 lines
1.7 KiB
HTML
43 lines
1.7 KiB
HTML
<html>
|
|
|
|
<head>
|
|
<object type="application/x-oleobject" classid="clsid:1e2a7bd0-dab9-11d0-b93a-00c04fc99f9e">
|
|
</object>
|
|
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251">
|
|
<title></title>
|
|
<link rel="StyleSheet" href="../../default.css">
|
|
</head>
|
|
|
|
<body>
|
|
<H1>Îáîáùåííûå ïîäïðîãðàììû <span lang="ru">â êà÷åñòâå ïàðàìåòðîâ</span></H1>
|
|
<p>Îáîáùåíí<span lang="ru">àÿ </span>ïîäïðîãðàìì<span lang="ru">à ìîæåò
|
|
âûñòóïàòü â êà÷åñòâå ôîðìàëüíîãî ïàðàìåòðà äðóãîé îáîáùåííîé ïîäïðîãðàììû.
|
|
</span>
|
|
</p>
|
|
<p>Íàïðèìåð, <span lang="ru">â êëàññå </span><code>System.Array</code>
|
|
<span lang="ru">èìååòñÿ íåñêîëüêî ñòàòè÷åñêèõ îáîáùåííûõ ìåòîäîâ ñ îáîáùåííûìè
|
|
ïîäïðîãðàììàìè â êà÷åñòâå ïàðàìåòðîâ. Òàê</span>, <code>System.Array.Find</code>
|
|
<span lang="ru">èìååò ñëåäóþùèé ïðîòîòèï:</span></p>
|
|
<blockquote>
|
|
<p><code>System.Array.FindAll<T>(a: <b>array</b> <b>of</b> T; pred:
|
|
Predicate<T>): <b>array of</b> T;</code></p>
|
|
</blockquote>
|
|
<p><span lang="ru">è âîçâðàùàåò ïîäìàññèâ ìàññèâà </span><code>a</code><span lang="ru">
|
|
ýëåìåíòîâ </span><code>T</code><span lang="ru">, óäîâëåòâîðÿþùèõ óñëîâèþ </span>
|
|
<code>pred</code><span lang="ru">.</span></p>
|
|
<p><span lang="ru">Ïðèâåäåì ïðèìåð âûçîâà ýòîé ôóíêöèè:</span></p>
|
|
<blockquote>
|
|
<p><code><b>function</b> f(x: integer): boolean;<br>
|
|
<b>begin</b><br>
|
|
Result := ;<br>
|
|
<b>end</b>;</code></p>
|
|
<p><code><b>var</b> a := Seq(1,3,6,5,8);<br>
|
|
<b>var</b> b := System.Array.FindAll(a,x -> x <b>mod</b> 2 = 0);</code></p>
|
|
</blockquote>
|
|
<p><span lang="ru">Çäåñü âîçâðàùàåòñÿ ìàññèâ </span><code>b</code><span lang="ru">,
|
|
ñîäåðæàùèé âñå ÷åòíûå çíà÷åíèÿ ìàññèâà </span><code>a</code> <span lang="ru">â
|
|
òîì æå ïîðÿäêå.</span></p>
|
|
</body>
|
|
|
|
</html>
|