pascalabcnet/PABCNetHelp/LangGuide/Generics/generic_sub_params.html

39 lines
2 KiB
HTML
Raw Normal View History

<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.FindAll</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>var</b> a := [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>