[doc] Unfold synopses [core](continue)
[scilab.git] / scilab / modules / core / help / ru_RU / 2_control_flow / resume.xml
1 <?xml version="1.0" encoding="UTF-8"?>
2 <!--
3  * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
4  * Copyright (C) 2008 - INRIA
5  *
6  * Copyright (C) 2012 - 2016 - Scilab Enterprises
7  *
8  * This file is hereby licensed under the terms of the GNU GPL v2.0,
9  * pursuant to article 5.3.4 of the CeCILL v.2.1.
10  * This file was originally licensed under the terms of the CeCILL v2.1,
11  * and continues to be available under such terms.
12  * For more information, see the COPYING file which you should have received
13  * along with this program.
14  *
15  -->
16 <refentry xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:svg="http://www.w3.org/2000/svg" xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:db="http://docbook.org/ns/docbook" xmlns:scilab="http://www.scilab.org" xml:lang="ru" xml:id="resume">
17     <refnamediv>
18         <refname>resume</refname>
19         <refpurpose>выполнение возврата или возобновление и копирование некоторых локальных переменных</refpurpose>
20     </refnamediv>
21     <refsynopsisdiv>
22         <title>Синтаксис</title>
23         <synopsis>
24           resume
25             [x1, ..., xn] = resume(a1, ..., an)
26         </synopsis>
27     </refsynopsisdiv>
28     <refsection>
29         <title>Аргументы</title>
30         <variablelist>
31             <varlistentry>
32                 <term>x1, ..., xn</term>
33                 <listitem>
34                     <para>переменные в вызывающем окружении</para>
35                 </listitem>
36             </varlistentry>
37             <varlistentry>
38                 <term>a1, ..., an</term>
39                 <listitem>
40                     <para>локальные переменные</para>
41                 </listitem>
42             </varlistentry>
43         </variablelist>
44     </refsection>
45     <refsection>
46         <title>Описание</title>
47         <para>
48             Внутри функции инструкция <literal>resume</literal>
49             останавливает исполнение функции;
50             <literal>[x1, ..., xn] = resume(a1, ..., an)</literal>
51             останавливает исполнение функции и передаёт локальные
52             переменные <literal>ai</literal> в вызывающее окружение под
53             именами <literal>xi</literal>.
54         </para>
55         <para>
56             В режиме <literal>pause</literal>, можно вернуться на более
57             высокий уровень.
58             <literal>[x1, ..., xn] = resume(a1, ..., an)</literal>
59             возвращает на верхний уровень и передаёт локальные
60             переменные <literal>ai</literal> под именами
61             <literal>xi</literal>.
62         </para>
63         <para>
64             В <literal>execstr</literal>, вызванной функцией,
65             <literal>[x1, ..., xn] = resume(a1, ..., an)</literal>
66             прекращает исполнение функции и выдаёт локальные переменные
67             <literal>ai</literal> в вызывающее окружение под именами
68             <literal>xi</literal>.
69         </para>
70         <para>
71             Инструкция <literal>resume</literal> эквивалентна инструкции <literal>return</literal>.
72         </para>
73         <para>
74             <note>
75                 Примечание: использование этой возможности может усложнить код. Вместо этого рекомендуется синтаксис <code>function b = foo()</code>.
76             </note>
77         </para>
78     </refsection>
79     <refsection>
80         <title>Примеры</title>
81         <programlisting role="example"><![CDATA[
82 function foo(a)
83          a=a+1
84          b=resume(a)
85          c=52
86 endfunction
87
88 foo(42);
89 assert_checkequal(b,43);
90 // c не существует
91
92 ]]></programlisting>
93         <programlisting role="example"><![CDATA[
94
95 // при наличии нескольких вызовов функции
96 function foo1()
97   a=1;
98   b=2;
99   c=3;
100   [x, y, z] = resume(a, b, c)
101 endfunction
102
103 function foo2()
104   foo1()
105   x, y, z // объявлены
106 endfunction
107
108 foo2()
109 // x, y и z здесь не существуют
110 ]]></programlisting>
111     </refsection>
112     <refsection role="see also">
113         <title>Смотрите также</title>
114         <simplelist type="inline">
115             <member>
116                 <link linkend="abort">abort</link>
117             </member>
118             <member>
119                 <link linkend="break">break</link>
120             </member>
121             <member>
122                 <link linkend="quit">quit</link>
123             </member>
124             <member>
125                 <link linkend="pause">pause</link>
126             </member>
127             <member>
128                 <link linkend="return">return</link>
129             </member>
130             <member>
131                 <link linkend="execstr">execstr</link>
132             </member>
133         </simplelist>
134     </refsection>
135     <refsection role="history">
136         <title>История</title>
137         <revhistory>
138             <revision>
139                 <revnumber>6.0.0</revnumber>
140                 <revdescription>
141                   <literal>resume</literal> теперь защищена:
142                   Присвоения, такие как <literal>resume=1</literal>, более не возможны.
143                 </revdescription>
144             </revision>
145         </revhistory>
146     </refsection>
147 </refentry>