pascalabcnet/PABCNetHelp/LangGuide/Generics/generic_sub_params.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&lt;T&gt;(a: <b>array</b> <b>of</b> T; pred:
Predicate&lt;T&gt;): <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>
&nbsp; 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 -&gt; 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>