{"id":366961,"date":"2024-05-21T03:11:09","date_gmt":"2024-05-21T03:11:09","guid":{"rendered":"http:\/\/savepearlharbor.com\/?p=366961"},"modified":"-0001-11-30T00:00:00","modified_gmt":"2024-05-21T03:11:09","slug":"","status":"publish","type":"post","link":"https:\/\/savepearlharbor.com\/?p=366961","title":{"rendered":"<span>\u041f\u0440\u0430\u043a\u0442\u0438\u0447\u0435\u0441\u043a\u043e\u0435 \u0440\u0443\u043a\u043e\u0432\u043e\u0434\u0441\u0442\u0432\u043e \u043f\u043e Rust. 1\/4<\/span>"},"content":{"rendered":"<div><!--[--><!--]--><\/div>\n<div id=\"post-content-body\">\n<div>\n<div class=\"article-formatted-body article-formatted-body article-formatted-body_version-1\">\n<div xmlns=\"http:\/\/www.w3.org\/1999\/xhtml\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w780q1\/webt\/fj\/yi\/qn\/fjyiqnduv3l-rdgxnbu_t_qpgxk.jpeg\" data-src=\"https:\/\/habrastorage.org\/webt\/fj\/yi\/qn\/fjyiqnduv3l-rdgxnbu_t_qpgxk.jpeg\" data-blurred=\"true\"\/>  <\/p>\n<p>  <\/p>\n<p>  <\/p>\n<p>Hello world!<\/p>\n<p>  <\/p>\n<p>\u041f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u044f\u044e \u0432\u0430\u0448\u0435\u043c\u0443 \u0432\u043d\u0438\u043c\u0430\u043d\u0438\u044e \u043f\u0435\u0440\u0432\u0443\u044e \u0447\u0430\u0441\u0442\u044c \u043f\u0440\u0430\u043a\u0442\u0438\u0447\u0435\u0441\u043a\u043e\u0433\u043e \u0440\u0443\u043a\u043e\u0432\u043e\u0434\u0441\u0442\u0432\u0430 \u043f\u043e <a href=\"https:\/\/www.rust-lang.org\/ru\/\">Rust<\/a>.<\/p>\n<p>  <\/p>\n<ul>\n<li><a href=\"https:\/\/habr.com\/ru\/companies\/timeweb\/articles\/794941\/\">\u0412\u0442\u043e\u0440\u0430\u044f \u0447\u0430\u0441\u0442\u044c<\/a><\/li>\n<li><a href=\"https:\/\/habr.com\/ru\/companies\/timeweb\/articles\/796567\/\">\u0422\u0440\u0435\u0442\u044c\u044f \u0447\u0430\u0441\u0442\u044c<\/a><\/li>\n<li><a href=\"https:\/\/habr.com\/ru\/companies\/timeweb\/articles\/801201\/\">\u0427\u0435\u0442\u0432\u0435\u0440\u0442\u0430\u044f \u0447\u0430\u0441\u0442\u044c<\/a><\/li>\n<li><a href=\"https:\/\/habr.com\/ru\/companies\/timeweb\/articles\/802609\/\">\u0411\u043e\u043d\u0443\u0441<\/a><\/li>\n<\/ul>\n<p>  <\/p>\n<p><a href=\"https:\/\/my-js.org\/docs\/guide\/rust\/\">\u0414\u0440\u0443\u0433\u043e\u0439 \u0444\u043e\u0440\u043c\u0430\u0442<\/a>, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043c\u043e\u0436\u0435\u0442 \u043f\u043e\u043a\u0430\u0437\u0430\u0442\u044c\u0441\u044f \u0432\u0430\u043c \u0431\u043e\u043b\u0435\u0435 \u0443\u0434\u043e\u0431\u043d\u044b\u043c.<\/p>\n<p>  <\/p>\n<p>\u0420\u0443\u043a\u043e\u0432\u043e\u0434\u0441\u0442\u0432\u043e \u043e\u0441\u043d\u043e\u0432\u0430\u043d\u043e \u043d\u0430 <a href=\"https:\/\/google.github.io\/comprehensive-rust\/index.html\">Comprehensive Rust<\/a> \u2014 \u0440\u0443\u043a\u043e\u0432\u043e\u0434\u0441\u0442\u0432\u0435 \u043f\u043e <code>Rust<\/code> \u043e\u0442 \u043a\u043e\u043c\u0430\u043d\u0434\u044b <code>Android<\/code> \u0432 <code>Google<\/code> \u0438 \u0440\u0430\u0441\u0441\u0447\u0438\u0442\u0430\u043d\u043e \u043d\u0430 \u043b\u044e\u0434\u0435\u0439, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0443\u0432\u0435\u0440\u0435\u043d\u043d\u043e \u0432\u043b\u0430\u0434\u0435\u044e\u0442 \u043b\u044e\u0431\u044b\u043c \u0441\u043e\u0432\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u043c \u044f\u0437\u044b\u043a\u043e\u043c \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f. \u0415\u0449\u0435 \u0440\u0430\u0437: \u044d\u0442\u043e \u0440\u0443\u043a\u043e\u0432\u043e\u0434\u0441\u0442\u0432\u043e \u043d\u0435 \u0440\u0430\u0441\u0441\u0447\u0438\u0442\u0430\u043d\u043e \u043d\u0430 \u0442\u0435\u0445, \u043a\u0442\u043e \u0442\u043e\u043b\u044c\u043a\u043e \u043d\u0430\u0447\u0438\u043d\u0430\u0435\u0442 \u043a\u043e\u0434\u0438\u0442\u044c ?<\/p>\n<p><a name=\"habracut\"><\/a>  <\/p>\n<p>\u0412 \u044d\u0442\u043e\u0439 \u0447\u0430\u0441\u0442\u0438 \u043c\u044b \u0440\u0430\u0441\u0441\u043c\u043e\u0442\u0440\u0438\u043c \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0435 \u0442\u0435\u043c\u044b:<\/p>\n<p>  <\/p>\n<ul>\n<li>\u0431\u0430\u0437\u043e\u0432\u044b\u0439 \u0441\u0438\u043d\u0442\u0430\u043a\u0441\u0438\u0441 <code>Rust<\/code>: \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0435, \u0441\u043a\u0430\u043b\u044f\u0440\u043d\u044b\u0435 \u0438 \u0441\u043e\u0441\u0442\u0430\u0432\u043d\u044b\u0435 \u0442\u0438\u043f\u044b, \u043f\u0435\u0440\u0435\u0447\u0438\u0441\u043b\u0435\u043d\u0438\u044f, \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u044b, \u0441\u0441\u044b\u043b\u043a\u0438, \u0444\u0443\u043d\u043a\u0446\u0438\u0438 \u0438 \u043c\u0435\u0442\u043e\u0434\u044b<\/li>\n<li>\u0442\u0438\u043f\u044b \u0438 \u0432\u044b\u0432\u0435\u0434\u0435\u043d\u0438\u0435 \u0442\u0438\u043f\u043e\u0432<\/li>\n<li>\u043a\u043e\u043d\u0441\u0442\u0440\u0443\u043a\u0446\u0438\u0438 \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u044f \u043f\u043e\u0442\u043e\u043a\u043e\u043c \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u044b: \u0446\u0438\u043a\u043b\u044b, \u0443\u0441\u043b\u043e\u0432\u0438\u044f \u0438 \u0442.\u043f.<\/li>\n<li>\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u0441\u043a\u0438\u0435 \u0442\u0438\u043f\u044b: \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u044b \u0438 \u043f\u0435\u0440\u0435\u0447\u0438\u0441\u043b\u0435\u043d\u0438\u044f<\/li>\n<li>\u0441\u043e\u043f\u043e\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u0438\u0435 \u0441 \u043e\u0431\u0440\u0430\u0437\u0446\u043e\u043c: \u0434\u0435\u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0438\u0437\u0430\u0446\u0438\u044f \u043f\u0435\u0440\u0435\u0447\u0438\u0441\u043b\u0435\u043d\u0438\u0439, \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440 \u0438 \u043c\u0430\u0441\u0441\u0438\u0432\u043e\u0432<\/li>\n<\/ul>\n<p>  <\/p>\n<p>\u041c\u0430\u0442\u0435\u0440\u0438\u0430\u043b\u044b \u0434\u043b\u044f \u0431\u043e\u043b\u0435\u0435 \u0433\u043b\u0443\u0431\u043e\u043a\u043e\u0433\u043e \u0438\u0437\u0443\u0447\u0435\u043d\u0438\u044f \u043d\u0430\u0437\u0432\u0430\u043d\u043d\u044b\u0445 \u0442\u0435\u043c:<\/p>\n<p>  <\/p>\n<ul>\n<li><a href=\"https:\/\/doc.rust-lang.ru\/book\">\u041a\u043d\u0438\u0433\u0430\/\u0443\u0447\u0435\u0431\u043d\u0438\u043a \u043f\u043e Rust<\/a> (\u043d\u0430 \u0440\u0443\u0441\u0441\u043a\u043e\u043c \u044f\u0437\u044b\u043a\u0435) \u2014 \u0433\u043b\u0430\u0432\u044b 1-3, 5 \u0438 6<\/li>\n<li><a href=\"https:\/\/github.com\/rust-lang\/rustlings\">rustlings<\/a> \u2014 \u0443\u043f\u0440\u0430\u0436\u043d\u0435\u043d\u0438\u044f 00-03, 07-09<\/li>\n<li><a href=\"https:\/\/doc.rust-lang.ru\/stable\/rust-by-example\/\">Rust \u043d\u0430 \u043f\u0440\u0438\u043c\u0435\u0440\u0430\u0445<\/a> (\u043d\u0430 \u0440\u0443\u0441\u0441\u043a\u043e\u043c \u044f\u0437\u044b\u043a\u0435) \u2014 \u043f\u0440\u0438\u043c\u0435\u0440\u044b 1-5, 7-9<\/li>\n<li><a href=\"https:\/\/practice.rs\/why-exercise.html\">Rust by practice<\/a> \u2014 \u0443\u043f\u0440\u0430\u0436\u043d\u0435\u043d\u0438\u044f 3, 4, 6-8, 15 \u0438 16<\/li>\n<\/ul>\n<p>  <\/p>\n<p>\u0422\u0430\u043a\u0436\u0435 \u0441\u043c. <a href=\"https:\/\/my-js.org\/docs\/cheatsheet\/rust\/\">\u0411\u043e\u043b\u044c\u0448\u0443\u044e \u0448\u043f\u0430\u0440\u0433\u0430\u043b\u043a\u0443 \u043f\u043e Rust<\/a>.<\/p>\n<p>  <\/p>\n<h2 id=\"hello-world\">Hello, World<\/h2>\n<p>  <\/p>\n<p><strong>\u0427\u0442\u043e \u0442\u0430\u043a\u043e\u0435 Rust?<\/strong><\/p>\n<p>  <\/p>\n<p><code>Rust<\/code> \u2014 \u044d\u0442\u043e \u043d\u043e\u0432\u044b\u0439 \u044f\u0437\u044b\u043a \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f, <a href=\"https:\/\/blog.rust-lang.org\/2015\/05\/15\/Rust-1.0.html\">\u0440\u0435\u043b\u0438\u0437 \u043f\u0435\u0440\u0432\u043e\u0439 \u0432\u0435\u0440\u0441\u0438\u0438 \u043a\u043e\u0442\u043e\u0440\u043e\u0433\u043e \u0441\u043e\u0441\u0442\u043e\u044f\u043b\u0441\u044f \u0432 2015 \u0433\u043e\u0434\u0443<\/a>:<\/p>\n<p>  <\/p>\n<ul>\n<li><code>Rust<\/code> \u2014 \u044d\u0442\u043e \u0441\u0442\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0438\u0439 \u043a\u043e\u043c\u043f\u0438\u043b\u0438\u0440\u0443\u0435\u043c\u044b\u0439 \u044f\u0437\u044b\u043a (\u043a\u0430\u043a <code>C++<\/code>)<br \/> \n<ul>\n<li><code>rustc<\/code> (\u043a\u043e\u043c\u043f\u0438\u043b\u044f\u0442\u043e\u0440 <code>Rust<\/code>) \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442 <a href=\"https:\/\/ru.wikipedia.org\/wiki\/LLVM\">LLVM<\/a> \u0432 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435 \u0431\u044d\u043a\u044d\u043d\u0434\u0430<\/li>\n<\/ul>\n<\/li>\n<li><code>Rust<\/code> \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u0435\u0442 \u043c\u043d\u043e\u0436\u0435\u0441\u0442\u0432\u043e <a href=\"https:\/\/doc.rust-lang.org\/nightly\/rustc\/platform-support.html\">\u043f\u043b\u0430\u0442\u0444\u043e\u0440\u043c \u0438 \u0430\u0440\u0445\u0438\u0442\u0435\u043a\u0442\u0443\u0440<\/a><br \/> \n<ul>\n<li>x86, ARM, WebAssembly&#8230;<\/li>\n<li>Linux, Mac, Windows&#8230;<\/li>\n<\/ul>\n<\/li>\n<li><code>Rust<\/code> \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f \u0434\u043b\u044f \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u0448\u0438\u0440\u043e\u043a\u043e\u0433\u043e \u0434\u0438\u0430\u043f\u0430\u0437\u043e\u043d\u0430 \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432<br \/> \n<ul>\n<li>\u043f\u0440\u043e\u0448\u0438\u0432\u043a\u0438 (firmware) \u0438 \u0437\u0430\u0433\u0440\u0443\u0437\u0447\u0438\u043a\u0438 (boot loaders)<\/li>\n<li>\u0443\u043c\u043d\u044b\u0435 \u0442\u0435\u043b\u0435\u0432\u0438\u0437\u043e\u0440\u044b<\/li>\n<li>\u043c\u043e\u0431\u0438\u043b\u044c\u043d\u044b\u0435 \u0442\u0435\u043b\u0435\u0444\u043e\u043d\u044b<\/li>\n<li>\u043d\u0430\u0441\u0442\u043e\u043b\u044c\u043d\u044b\u0435 \u043a\u043e\u043c\u043f\u044c\u044e\u0442\u0435\u0440\u044b<\/li>\n<li>\u0441\u0435\u0440\u0432\u0435\u0440\u044b<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<p>  <\/p>\n<p>\u041d\u0435\u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043f\u0440\u0435\u0438\u043c\u0443\u0449\u0435\u0441\u0442\u0432\u0430 <code>Rust<\/code>:<\/p>\n<p>  <\/p>\n<ul>\n<li>\u0432\u044b\u0441\u043e\u043a\u0430\u044f \u0433\u0438\u0431\u043a\u043e\u0441\u0442\u044c<\/li>\n<li>\u0432\u044b\u0441\u043e\u043a\u0438\u0439 \u0443\u0440\u043e\u0432\u0435\u043d\u044c \u043a\u043e\u043d\u0442\u0440\u043e\u043b\u044f<\/li>\n<li>\u043c\u043e\u0436\u0435\u0442 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c\u0441\u044f \u0434\u043b\u044f \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u043e\u0447\u0435\u043d\u044c \u043d\u0438\u0437\u043a\u043e\u0443\u0440\u043e\u0432\u043d\u0435\u0432\u044b\u0445 \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432, \u0442\u0430\u043a\u0438\u0445 \u043a\u0430\u043a \u043c\u0438\u043a\u0440\u043e\u043a\u043e\u043d\u0442\u0440\u043e\u043b\u043b\u0435\u0440\u044b<\/li>\n<li>\u043d\u0435 \u0438\u043c\u0435\u0435\u0442 \u0441\u0440\u0435\u0434\u044b \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f \u0438\u043b\u0438 \u0441\u0431\u043e\u0440\u043a\u0438 \u043c\u0443\u0441\u043e\u0440\u0430<\/li>\n<li>\u0444\u043e\u043a\u0443\u0441 \u043d\u0430 \u043d\u0430\u0434\u0435\u0436\u043d\u043e\u0441\u0442\u0438 \u0438 \u0431\u0435\u0437\u043e\u043f\u0430\u0441\u043d\u043e\u0441\u0442\u0438 \u0431\u0435\u0437 \u0443\u0449\u0435\u0440\u0431\u0430 \u0434\u043b\u044f \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u0438<\/li>\n<\/ul>\n<p>  <\/p>\n<p><strong>Hello, World<\/strong><\/p>\n<p>  <\/p>\n<p>\u0420\u0430\u0441\u0441\u043c\u043e\u0442\u0440\u0438\u043c \u043f\u0440\u043e\u0441\u0442\u0435\u0439\u0448\u0443\u044e \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0443 \u043d\u0430 <code>Rust<\/code>:<\/p>\n<p>  <\/p>\n<pre><code class=\"rust\">fn main() {     println!(\"\u041f\u0440\u0438\u0432\u0435\u0442 ?!\"); }<\/code><\/pre>\n<p>  <\/p>\n<p>\u0412\u043e\u0442 \u0447\u0442\u043e \u043c\u044b \u0437\u0434\u0435\u0441\u044c \u0432\u0438\u0434\u0438\u043c:<\/p>\n<p>  <\/p>\n<ul>\n<li>\u0444\u0443\u043d\u043a\u0446\u0438\u0438 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u044f\u044e\u0442\u0441\u044f \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e <code>fn<\/code><\/li>\n<li>\u0431\u043b\u043e\u043a\u0438 \u043a\u043e\u0434\u0430 \u0432\u044b\u0434\u0435\u043b\u044f\u044e\u0442\u0441\u044f \u0444\u0438\u0433\u0443\u0440\u043d\u044b\u043c\u0438 \u0441\u043a\u043e\u0431\u043a\u0430\u043c\u0438<\/li>\n<li>\u0444\u0443\u043d\u043a\u0446\u0438\u044f <code>main()<\/code> \u2014 \u044d\u0442\u043e \u0432\u0445\u043e\u0434\u043d\u0430\u044f \u0442\u043e\u0447\u043a\u0430 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u044b<\/li>\n<li><code>Rust<\/code> \u0438\u043c\u0435\u0435\u0442 \u0433\u0438\u0433\u0438\u0435\u043d\u0438\u0447\u0435\u0441\u043a\u0438\u0435 \u043c\u0430\u043a\u0440\u043e\u0441\u044b, \u0442\u0430\u043a\u0438\u0435 \u043a\u0430\u043a <code>println!()<\/code><\/li>\n<li>\u0441\u0442\u0440\u043e\u043a\u0438 \u0432 <code>Rust<\/code> \u043a\u043e\u0434\u0438\u0440\u0443\u044e\u0442\u0441\u044f \u0432 UTF-8 \u0438 \u043c\u043e\u0433\u0443\u0442 \u0441\u043e\u0434\u0435\u0440\u0436\u0430\u0442\u044c \u043b\u044e\u0431\u043e\u0439 \u0441\u0438\u043c\u0432\u043e\u043b \u042e\u043d\u0438\u043a\u043e\u0434\u0430<\/li>\n<\/ul>\n<p>  <\/p>\n<p>\u0420\u0435\u043c\u0430\u0440\u043a\u0438:<\/p>\n<p>  <\/p>\n<ul>\n<li><code>Rust<\/code> \u043e\u0447\u0435\u043d\u044c \u043f\u043e\u0445\u043e\u0436 \u043d\u0430 \u0442\u0430\u043a\u0438\u0435 \u044f\u0437\u044b\u043a\u0438, \u043a\u0430\u043a <code>C<\/code>\/<code>C++<\/code>\/<code>Java<\/code>. \u041e\u043d \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u0438\u043c\u043f\u0435\u0440\u0430\u0442\u0438\u0432\u043d\u044b\u043c \u0438 \u043d\u0435 \u0438\u0437\u043e\u0431\u0440\u0435\u0442\u0430\u0435\u0442 &#171;\u0432\u0435\u043b\u043e\u0441\u0438\u043f\u0435\u0434\u044b&#187; \u0431\u0435\u0437 \u043a\u0440\u0430\u0439\u043d\u0435\u0439 \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e\u0441\u0442\u0438<\/li>\n<li><code>Rust<\/code> \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u0441\u043e\u0432\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u043c: \u043f\u043e\u043b\u043d\u043e\u0441\u0442\u044c\u044e \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u0435\u0442 \u0442\u0430\u043a\u0438\u0435 \u0432\u0435\u0449\u0438, \u043a\u0430\u043a \u042e\u043d\u0438\u043a\u043e\u0434 (Unicode)<\/li>\n<li><code>Rust<\/code> \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442 \u043c\u0430\u043a\u0440\u043e\u0441\u044b (macros) \u0434\u043b\u044f \u0441\u0438\u0442\u0443\u0430\u0446\u0438\u0439, \u043a\u043e\u0433\u0434\u0430 \u0444\u0443\u043d\u043a\u0446\u0438\u044f \u043f\u0440\u0438\u043d\u0438\u043c\u0430\u0435\u0442 \u0440\u0430\u0437\u043d\u043e\u0435 \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u043e\u0432 (\u043d\u0435 \u043f\u0443\u0442\u0430\u0442\u044c \u0441 \u043f\u0435\u0440\u0435\u0433\u0440\u0443\u0437\u043a\u043e\u0439 \u0444\u0443\u043d\u043a\u0446\u0438\u0438 (function overloading))<\/li>\n<li>\u043c\u0430\u043a\u0440\u043e\u0441\u044b \u044f\u0432\u043b\u044f\u044e\u0442\u0441\u044f &#171;\u0433\u0438\u0433\u0438\u0435\u043d\u0438\u0447\u0435\u0441\u043a\u0438\u043c\u0438&#187; \u2014 \u043e\u043d\u0438 \u043d\u0435 \u043f\u0435\u0440\u0435\u0445\u0432\u0430\u0442\u044b\u0432\u0430\u044e\u0442 \u0441\u043b\u0443\u0447\u0430\u0439\u043d\u043e \u0438\u0434\u0435\u043d\u0442\u0438\u0444\u0438\u043a\u0430\u0442\u043e\u0440\u044b \u0438\u0437 \u043e\u0431\u043b\u0430\u0441\u0442\u0438 \u0432\u0438\u0434\u0438\u043c\u043e\u0441\u0442\u0438, \u0432 \u043a\u043e\u0442\u043e\u0440\u043e\u0439 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044e\u0442\u0441\u044f. \u041d\u0430 \u0441\u0430\u043c\u043e\u043c \u0434\u0435\u043b\u0435, \u043c\u0430\u043a\u0440\u043e\u0441\u044b <code>Rust<\/code> \u0442\u043e\u043b\u044c\u043a\u043e <a href=\"https:\/\/veykril.github.io\/tlborm\/decl-macros\/minutiae\/hygiene.html\">\u0447\u0430\u0441\u0442\u0438\u0447\u043d\u043e<\/a> \u044f\u0432\u043b\u044f\u044e\u0442\u0441\u044f \u0433\u0438\u0433\u0438\u0435\u043d\u0438\u0447\u0435\u0441\u043a\u0438\u043c\u0438<\/li>\n<li><code>Rust<\/code> \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u043c\u0443\u043b\u044c\u0442\u0438\u043f\u0430\u0440\u0430\u0434\u0438\u0433\u043c\u0435\u043d\u043d\u044b\u043c \u044f\u0437\u044b\u043a\u043e\u043c. \u041e\u043d \u0438\u043c\u0435\u0435\u0442 \u043c\u043e\u0449\u043d\u044b\u0435 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u0438 \u041e\u041e\u041f \u0438 \u0432\u043a\u043b\u044e\u0447\u0430\u0435\u0442 \u043f\u0435\u0440\u0435\u0447\u0435\u043d\u044c \u0444\u0443\u043d\u043a\u0446\u0438\u043e\u043d\u0430\u043b\u044c\u043d\u044b\u0445 \u043a\u043e\u043d\u0446\u0435\u043f\u0446\u0438\u0439<\/li>\n<\/ul>\n<p>  <\/p>\n<p><strong>\u041f\u0440\u0435\u0438\u043c\u0443\u0449\u0435\u0441\u0442\u0432\u0430 Rust<\/strong><\/p>\n<p>  <\/p>\n<p>\u041d\u0435\u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0443\u043d\u0438\u043a\u0430\u043b\u044c\u043d\u044b\u0435 \u043e\u0441\u043e\u0431\u0435\u043d\u043d\u043e\u0441\u0442\u0438 <code>Rust<\/code>:<\/p>\n<p>  <\/p>\n<ul>\n<li>\u0431\u0435\u0437\u043e\u043f\u0430\u0441\u043d\u043e\u0441\u0442\u044c \u043f\u0430\u043c\u044f\u0442\u0438 \u0432\u043e \u0432\u0440\u0435\u043c\u044f \u043a\u043e\u043c\u043f\u0438\u043b\u044f\u0446\u0438\u0438 \u2014 \u0432\u0435\u0441\u044c \u043a\u043b\u0430\u0441\u0441 \u043f\u0440\u043e\u0431\u043b\u0435\u043c \u0441 \u043f\u0430\u043c\u044f\u0442\u044c\u044e \u043f\u0440\u0435\u0434\u043e\u0442\u0432\u0440\u0430\u0449\u0430\u0435\u0442\u0441\u044f \u0432\u043e \u0432\u0440\u0435\u043c\u044f \u043a\u043e\u043c\u043f\u0438\u043b\u044f\u0446\u0438\u0438<br \/> \n<ul>\n<li>\u043d\u0435\u0438\u043d\u0438\u0446\u0438\u0430\u043b\u0438\u0437\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0435 \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0435<\/li>\n<li>\u0434\u0432\u043e\u0439\u043d\u043e\u0435 \u043e\u0441\u0432\u043e\u0431\u043e\u0436\u0434\u0435\u043d\u0438\u0435 (double-frees)<\/li>\n<li>\u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435 \u043f\u043e\u0441\u043b\u0435 \u043e\u0441\u0432\u043e\u0431\u043e\u0436\u0434\u0435\u043d\u0438\u044f (use-after-free)<\/li>\n<li>\u043d\u0443\u043b\u0435\u0432\u044b\u0435 \u0443\u043a\u0430\u0437\u0430\u0442\u0435\u043b\u0438 (<code>NULL<\/code> pointers)<\/li>\n<li>\u0437\u0430\u0431\u044b\u0442\u044b\u0435 \u0437\u0430\u0431\u043b\u043e\u043a\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0435 \u043c\u044c\u044e\u0442\u0435\u043a\u0441\u044b (mutexes)<\/li>\n<li>\u0433\u043e\u043d\u043a\u0438 \u0434\u0430\u043d\u043d\u044b\u0445 \u043c\u0435\u0436\u0434\u0443 \u043f\u043e\u0442\u043e\u043a\u0430\u043c\u0438 (threads)<\/li>\n<li>\u0438\u043d\u0432\u0430\u043b\u0438\u0434\u0430\u0446\u0438\u044f \u0438\u0442\u0435\u0440\u0430\u0442\u043e\u0440\u0430<\/li>\n<\/ul>\n<\/li>\n<li>\u043e\u0442\u0441\u0443\u0442\u0441\u0442\u0432\u0438\u0435 \u043d\u0435\u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u043d\u043e\u0433\u043e \u043f\u043e\u0432\u0435\u0434\u0435\u043d\u0438\u044f \u0432\u043e \u0432\u0440\u0435\u043c\u044f \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f \u2014 \u0442\u043e, \u0447\u0442\u043e \u0434\u0435\u043b\u0430\u0435\u0442 \u0438\u043d\u0441\u0442\u0440\u0443\u043a\u0446\u0438\u044f <code>Rust<\/code>, \u043d\u0438\u043a\u043e\u0433\u0434\u0430 \u043d\u0435 \u043e\u0441\u0442\u0430\u0435\u0442\u0441\u044f \u043d\u0435\u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u043d\u044b\u043c<br \/> \n<ul>\n<li>\u043f\u0440\u043e\u0432\u0435\u0440\u044f\u044e\u0442\u0441\u044f \u0433\u0440\u0430\u043d\u0438\u0446\u044b \u0434\u043e\u0441\u0442\u0443\u043f\u0430 (index boundaries) \u043a \u043c\u0430\u0441\u0441\u0438\u0432\u0443<\/li>\n<li>\u043f\u0435\u0440\u0435\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u0435 (overflowing) \u0446\u0435\u043b\u044b\u0445 \u0447\u0438\u0441\u0435\u043b \u043f\u0440\u0438\u0432\u043e\u0434\u0438\u0442 \u043a \u043f\u0430\u043d\u0438\u043a\u0435 \u0438\u043b\u0438 \u043e\u0431\u043e\u0440\u0430\u0447\u0438\u0432\u0430\u043d\u0438\u044e (wrapping)<\/li>\n<\/ul>\n<\/li>\n<li>\u0441\u043e\u0432\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0435 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u0438 \u2014 \u0441\u0442\u043e\u043b\u044c \u0436\u0435 \u0432\u044b\u0440\u0430\u0437\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u0435 \u0438 \u044d\u0440\u0433\u043e\u043d\u043e\u043c\u0438\u0447\u043d\u044b\u0435, \u043a\u0430\u043a \u0432 \u0432\u044b\u0441\u043e\u043a\u043e\u0443\u0440\u043e\u0432\u043d\u0435\u0432\u044b\u0445 \u044f\u0437\u044b\u043a\u0430\u0445<br \/> \n<ul>\n<li>\u043f\u0435\u0440\u0435\u0447\u0438\u0441\u043b\u0435\u043d\u0438\u044f \u0438 \u0441\u043e\u043f\u043e\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u0438\u0435 \u0441 \u043e\u0431\u0440\u0430\u0437\u0446\u043e\u043c (matching)<\/li>\n<li>\u0434\u0436\u0435\u043d\u0435\u0440\u0438\u043a\u0438 (generics)<\/li>\n<li>\u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441 \u0432\u043d\u0435\u0448\u043d\u0438\u0445 \u0444\u0443\u043d\u043a\u0446\u0438\u0439 (foreign function interface, FFI) \u0431\u0435\u0437 \u043d\u0430\u043a\u043b\u0430\u0434\u043d\u044b\u0445 \u0440\u0430\u0441\u0445\u043e\u0434\u043e\u0432<\/li>\n<li>\u0431\u0435\u0441\u043f\u043b\u0430\u0442\u043d\u044b\u0435 \u0430\u0431\u0441\u0442\u0440\u0430\u043a\u0446\u0438\u0438<\/li>\n<li>\u043e\u0442\u043b\u0438\u0447\u043d\u044b\u0435 \u043e\u0448\u0438\u0431\u043a\u0438 \u043a\u043e\u043c\u043f\u0438\u043b\u044f\u0442\u043e\u0440\u0430<\/li>\n<li>\u0432\u0441\u0442\u0440\u043e\u0435\u043d\u043d\u043e\u0435 \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u0435 \u0437\u0430\u0432\u0438\u0441\u0438\u043c\u043e\u0441\u0442\u044f\u043c\u0438<\/li>\n<li>\u0432\u0441\u0442\u0440\u043e\u0435\u043d\u043d\u0430\u044f \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u0430 \u0442\u0435\u0441\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f<\/li>\n<li>\u043f\u0440\u0435\u0432\u043e\u0441\u0445\u043e\u0434\u043d\u0430\u044f \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u0430 \u043f\u0440\u043e\u0442\u043e\u043a\u043e\u043b\u0430 \u044f\u0437\u044b\u043a\u043e\u0432\u043e\u0433\u043e \u0441\u0435\u0440\u0432\u0435\u0440\u0430 (Language Server Protocol)<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<p>  <\/p>\n<p><strong>\u041f\u0435\u0441\u043e\u0447\u043d\u0438\u0446\u0430<\/strong><\/p>\n<p>  <\/p>\n<p><a href=\"https:\/\/play.rust-lang.org\/\"><code>\u041f\u0435\u0441\u043e\u0447\u043d\u0438\u0446\u0430 Rust<\/code><\/a> \u043f\u0440\u0435\u0434\u043e\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u0442 \u043b\u0435\u0433\u043a\u0438\u0439 \u0441\u043f\u043e\u0441\u043e\u0431 \u0431\u044b\u0441\u0442\u0440\u043e \u0437\u0430\u043f\u0443\u0441\u043a\u0430\u0442\u044c \u043a\u043e\u0440\u043e\u0442\u043a\u0438\u0435 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u044b <code>Rust<\/code>.<\/p>\n<p>  <\/p>\n<h2 id=\"tipy-i-znacheniya\">\u0422\u0438\u043f\u044b \u0438 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f<\/h2>\n<p>  <\/p>\n<p><strong>\u041f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0435<\/strong><\/p>\n<p>  <\/p>\n<p>\u0411\u0435\u0437\u043e\u043f\u0430\u0441\u043d\u043e\u0441\u0442\u044c \u0442\u0438\u043f\u043e\u0432 \u0432 <code>Rust<\/code> \u043e\u0431\u0435\u0441\u043f\u0435\u0447\u0438\u0432\u0430\u0435\u0442\u0441\u044f \u0437\u0430 \u0441\u0447\u0435\u0442 \u0441\u0442\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u043e\u0439 \u0442\u0438\u043f\u0438\u0437\u0430\u0446\u0438\u0438. \u041f\u0440\u0438\u0432\u044f\u0437\u043a\u0438 \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0445 (variable bindings) \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u044e\u0442\u0441\u044f \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e <code>let<\/code>:<\/p>\n<p>  <\/p>\n<pre><code class=\"rust\">fn main() {     let x: i32 = 10;     println!(\"x: {x}\");     \/\/ x = 20;     \/\/ println!(\"x: {x}\"); }<\/code><\/pre>\n<p>  <\/p>\n<ul>\n<li>\u0420\u0430\u0441\u043a\u043e\u043c\u043c\u0435\u043d\u0442\u0438\u0440\u0443\u0439\u0442\u0435 <code>x = 20<\/code>, \u0447\u0442\u043e\u0431\u044b \u0443\u0432\u0438\u0434\u0435\u0442\u044c, \u0447\u0442\u043e \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0435 \u043f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e \u044f\u0432\u043b\u044f\u044e\u0442\u0441\u044f \u0438\u043c\u043c\u0443\u0442\u0430\u0431\u0435\u043b\u044c\u043d\u044b\u043c\u0438 (\u043d\u0435\u0438\u0437\u043c\u0435\u043d\u043d\u044b\u043c\u0438\/\u043d\u0435\u0438\u0437\u043c\u0435\u043d\u044f\u0435\u043c\u044b\u043c\u0438). \u0414\u043e\u0431\u0430\u0432\u044c\u0442\u0435 \u043a\u043b\u044e\u0447\u0435\u0432\u043e\u0435 \u0441\u043b\u043e\u0432\u043e <code>mut<\/code> \u043f\u043e\u0441\u043b\u0435 <code>let<\/code>, \u0447\u0442\u043e\u0431\u044b \u0441\u0434\u0435\u043b\u0430\u0442\u044c \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u0443\u044e \u043c\u0443\u0442\u0430\u0431\u0435\u043b\u044c\u043d\u043e\u0439<\/li>\n<li><code>i32<\/code> \u2014 \u044d\u0442\u043e \u0442\u0438\u043f \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u043e\u0439. \u0422\u0438\u043f \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u043e\u0439 \u0434\u043e\u043b\u0436\u0435\u043d \u0431\u044b\u0442\u044c \u0438\u0437\u0432\u0435\u0441\u0442\u0435\u043d \u0432\u043e \u0432\u0440\u0435\u043c\u044f \u043a\u043e\u043c\u043f\u0438\u043b\u044f\u0446\u0438\u0438, \u043d\u043e \u0432\u044b\u0432\u0435\u0434\u0435\u043d\u0438\u0435 \u0442\u0438\u043f\u043e\u0432 (\u0440\u0430\u0441\u0441\u043c\u0430\u0442\u0440\u0438\u0432\u0430\u0435\u043c\u043e\u0435 \u043f\u043e\u0437\u0436\u0435) \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u0430\u043c \u043e\u043f\u0443\u0441\u043a\u0430\u0442\u044c \u0442\u0438\u043f\u044b \u0432\u043e \u043c\u043d\u043e\u0433\u0438\u0445 \u0441\u043b\u0443\u0447\u0430\u044f\u0445<\/li>\n<\/ul>\n<p>  <\/p>\n<p><strong>\u0417\u043d\u0430\u0447\u0435\u043d\u0438\u044f<\/strong><\/p>\n<p>  <\/p>\n<p>\u0412\u043e\u0442 \u043d\u0435\u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0431\u0430\u0437\u043e\u0432\u044b\u0435 \u0432\u0441\u0442\u0440\u043e\u0435\u043d\u043d\u044b\u0435 \u0442\u0438\u043f\u044b \u0438 \u0441\u0438\u043d\u0442\u0430\u043a\u0441\u0438\u0441 \u043b\u0438\u0442\u0435\u0440\u0430\u043b\u044c\u043d\u044b\u0445 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0439 \u043a\u0430\u0436\u0434\u043e\u0433\u043e \u0442\u0438\u043f\u0430:<\/p>\n<p>  <\/p>\n<div class=\"scrollable-table\">\n<table>\n<thead>\n<tr>\n<th>\u0422\u0438\u043f\u044b<\/th>\n<th>\u041b\u0438\u0442\u0435\u0440\u0430\u043b\u044b<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td>\u0426\u0435\u043b\u044b\u0435 \u0447\u0438\u0441\u043b\u0430 \u0441\u043e \u0437\u043d\u0430\u043a\u043e\u043c<\/td>\n<td>i8, i16, i32, i64, i128, isize<\/td>\n<td>-10, 0, 1_000, 123_i64<\/td>\n<\/tr>\n<tr>\n<td>\u0426\u0435\u043b\u044b\u0435 \u0447\u0438\u0441\u043b\u0430 \u0431\u0435\u0437 \u0437\u043d\u0430\u043a\u0430<\/td>\n<td>u8, u16, u32, u64, u128, usize<\/td>\n<td>0, 123, 10_u16<\/td>\n<\/tr>\n<tr>\n<td>\u0427\u0438\u0441\u043b\u0430 \u0441 \u043f\u043b\u0430\u0432\u0430\u044e\u0449\u0435\u0439 \u0442\u043e\u0447\u043a\u043e\u0439<\/td>\n<td>f32, f64<\/td>\n<td>3.14, -10.0e20, 2_f32<\/td>\n<\/tr>\n<tr>\n<td>\u0421\u043a\u0430\u043b\u044f\u0440\u043d\u044b\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u042e\u043d\u0438\u043a\u043e\u0434\u0430<\/td>\n<td>char<\/td>\n<td>&#8216;a&#8217;, &#8216;\u03b1&#8217;, &#8216;\u221e&#8217;<\/td>\n<\/tr>\n<tr>\n<td>\u041b\u043e\u0433\u0438\u0447\u0435\u0441\u043a\u0438\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f<\/td>\n<td>bool<\/td>\n<td>true,false<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<p>  <\/p>\n<p>\u0422\u0438\u043f\u044b \u0438\u043c\u0435\u044e\u0442 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0435 \u0440\u0430\u0437\u043c\u0435\u0440\u044b:<\/p>\n<p>  <\/p>\n<ul>\n<li>\n<p><code>iN<\/code>, <code>uN<\/code> \u0438 <code>fN<\/code> \u2014 <code>N<\/code> \u0431\u0438\u0442<\/p>\n<p>  <\/li>\n<li>\n<p><code>isize<\/code> \u0438 <code>usize<\/code> \u2014 \u0440\u0430\u0437\u043c\u0435\u0440 \u0443\u043a\u0430\u0437\u0430\u0442\u0435\u043b\u044f<\/p>\n<p>  <\/li>\n<li>\n<p><code>char<\/code> \u2014 32 \u0431\u0438\u0442\u0430<\/p>\n<p>  <\/li>\n<li>\n<p><code>bool<\/code> \u2014 8 \u0431\u0438\u0442<\/p>\n<p>  <\/li>\n<li>\n<p>\u041d\u0438\u0436\u043d\u0438\u0435 \u043f\u043e\u0434\u0447\u0435\u0440\u043a\u0438\u0432\u0430\u043d\u0438\u044f \u043f\u0440\u0435\u0434\u043d\u0430\u0437\u043d\u0430\u0447\u0435\u043d\u044b \u0434\u043b\u044f \u0443\u043b\u0443\u0447\u0448\u0435\u043d\u0438\u044f \u0447\u0438\u0442\u0430\u0435\u043c\u043e\u0441\u0442\u0438, \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u0438\u0445 \u043c\u043e\u0436\u043d\u043e \u043d\u0435 \u043f\u0438\u0441\u0430\u0442\u044c, \u0442.\u0435. <code>1_000<\/code> \u043c\u043e\u0436\u043d\u043e \u0437\u0430\u043f\u0438\u0441\u0430\u0442\u044c \u043a\u0430\u043a <code>1000<\/code> (\u0438\u043b\u0438 <code>10_00<\/code>), \u0430 <code>123_i64<\/code> \u043c\u043e\u0436\u043d\u043e \u0437\u0430\u043f\u0438\u0441\u0430\u0442\u044c \u043a\u0430\u043a <code>123i64<\/code><\/p>\n<p>  <\/li>\n<\/ul>\n<p>  <\/p>\n<p><strong>\u0410\u0440\u0438\u0444\u043c\u0435\u0442\u0438\u043a\u0430<\/strong><\/p>\n<p>  <\/p>\n<pre><code class=\"rust\">fn interproduct(a: i32, b: i32, c: i32) -> i32 {     return a * b + b * c + c * a; }  fn main() {     println!(\"\u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442: {}\", interproduct(120, 100, 248)); }<\/code><\/pre>\n<p>  <\/p>\n<p>\u0412 \u0430\u0440\u0438\u0444\u043c\u0435\u0442\u0438\u043a\u0435 <code>Rust<\/code> \u043d\u0435\u0442 \u043d\u0438\u0447\u0435\u0433\u043e \u043e\u0441\u043e\u0431\u0435\u043d\u043d\u043e\u0433\u043e \u043f\u043e \u0441\u0440\u0430\u0432\u043d\u0435\u043d\u0438\u044e \u0441 \u0434\u0440\u0443\u0433\u0438\u043c\u0438 \u044f\u0437\u044b\u043a\u0430\u043c\u0438 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f, \u0437\u0430 \u0438\u0441\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435\u043c \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u0438\u044f \u043f\u043e\u0432\u0435\u0434\u0435\u043d\u0438\u044f \u043f\u0440\u0438 \u043f\u0435\u0440\u0435\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u0438 \u0446\u0435\u043b\u044b\u0445 \u0447\u0438\u0441\u0435\u043b: \u043f\u0440\u0438 \u0441\u0431\u043e\u0440\u043a\u0435 \u0434\u043b\u044f \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0438 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0430 \u0437\u0430\u043f\u0430\u043d\u0438\u043a\u0443\u0435\u0442, \u0430 \u043f\u0440\u0438 \u0440\u0435\u043b\u0438\u0437\u043d\u043e\u0439 \u0441\u0431\u043e\u0440\u043a\u0435 \u043f\u0435\u0440\u0435\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u0435 \u0431\u0443\u0434\u0435\u0442 \u043e\u0431\u0435\u0440\u043d\u0443\u0442\u043e (wrapped). \u041a\u0440\u043e\u043c\u0435 \u043f\u0435\u0440\u0435\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f, \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u0435\u0442 \u0442\u0430\u043a\u0436\u0435 \u043d\u0430\u0441\u044b\u0449\u0435\u043d\u0438\u0435 (saturating) \u0438 \u043a\u0430\u0440\u0440\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 (carrying), \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043e\u0431\u0435\u0441\u043f\u0435\u0447\u0438\u0432\u0430\u044e\u0442\u0441\u044f \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u044e\u0449\u0438\u043c\u0438 \u043c\u0435\u0442\u043e\u0434\u0430\u043c\u0438, \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, <code>(a * b).saturating_add(b * c).saturating_add(c * a)<\/code>.<\/p>\n<p>  <\/p>\n<p><strong>\u0421\u0442\u0440\u043e\u043a\u0438<\/strong><\/p>\n<p>  <\/p>\n<p>\u0412 <code>Rust<\/code> \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u0435\u0442 2 \u0442\u0438\u043f\u0430 \u0434\u043b\u044f \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u0438\u044f \u0441\u0442\u0440\u043e\u043a, \u043e\u0431\u0430 \u0431\u0443\u0434\u0443\u0442 \u043f\u043e\u0434\u0440\u043e\u0431\u043d\u043e \u0440\u0430\u0441\u0441\u043c\u043e\u0442\u0440\u0435\u043d\u044b \u043f\u043e\u0437\u0436\u0435. \u041e\u0431\u0430 \u0442\u0438\u043f\u0430 \u0432\u0441\u0435\u0433\u0434\u0430 \u0445\u0440\u0430\u043d\u044f\u0442 \u0437\u0430\u043a\u043e\u0434\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0435 \u0432 <code>UTF-8<\/code> \u0441\u0442\u0440\u043e\u043a\u0438.<\/p>\n<p>  <\/p>\n<ul>\n<li><code>String<\/code> \u2014 \u043c\u043e\u0434\u0438\u0444\u0438\u0446\u0438\u0440\u0443\u0435\u043c\u0430\u044f, \u0441\u043e\u0431\u0441\u0442\u0432\u0435\u043d\u043d\u0430\u044f (owned) \u0441\u0442\u0440\u043e\u043a\u0430<\/li>\n<li><code>&amp;str<\/code> \u2014 \u0441\u0442\u0440\u043e\u043a\u0430, \u0434\u043e\u0441\u0442\u0443\u043f\u043d\u0430\u044f \u0442\u043e\u043b\u044c\u043a\u043e \u0434\u043b\u044f \u0447\u0442\u0435\u043d\u0438\u044f. \u0421\u0442\u0440\u043e\u043a\u043e\u0432\u044b\u0435 \u043b\u0438\u0442\u0435\u0440\u0430\u043b\u044b \u0438\u043c\u0435\u044e\u0442 \u044d\u0442\u043e\u0442 \u0442\u0438\u043f<\/li>\n<\/ul>\n<p>  <\/p>\n<pre><code class=\"rust\">fn main() {     let greeting: &amp;str = \"\u041f\u0440\u0438\u0432\u0435\u0442\";     let planet: &amp;str = \"?\";     let mut sentence = String::new();     sentence.push_str(greeting);     sentence.push_str(\", \");     sentence.push_str(planet);     println!(\"\u0438\u0442\u043e\u0433\u043e\u0432\u043e\u0435 \u043f\u0440\u0435\u0434\u043b\u043e\u0436\u0435\u043d\u0438\u0435: {}\", sentence);     println!(\"{:?}\", &amp;sentence[0..5]);     \/\/println!(\"{:?}\", &amp;sentence[12..13]); }<\/code><\/pre>\n<p>  <\/p>\n<p>\u0420\u0435\u043c\u0430\u0440\u043a\u0438:<\/p>\n<p>  <\/p>\n<ul>\n<li>\u043f\u043e\u0432\u0435\u0434\u0435\u043d\u0438\u0435 \u043f\u0440\u0438 \u043d\u0430\u043b\u0438\u0447\u0438\u0438 \u0432 \u0441\u0442\u0440\u043e\u043a\u0435 \u043d\u0435\u0432\u0430\u043b\u0438\u0434\u043d\u044b\u0445 \u0441\u0438\u043c\u0432\u043e\u043b\u043e\u0432 <code>UTF-8<\/code> \u0432 <code>Rust<\/code> \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u043d\u0435\u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u043d\u044b\u043c, \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435 \u0442\u0430\u043a\u0438\u0445 \u0441\u0438\u043c\u0432\u043e\u043b\u043e\u0432 \u043c\u043e\u0436\u0435\u0442 \u043f\u0440\u0438\u0432\u0435\u0441\u0442\u0438 \u043a \u043f\u0430\u043d\u0438\u043a\u0435<\/li>\n<li><code>String<\/code> \u2014 \u044d\u0442\u043e \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u0441\u043a\u0438\u0439 \u0442\u0438\u043f \u0441 \u043a\u043e\u043d\u0441\u0442\u0440\u0443\u043a\u0442\u043e\u0440\u043e\u043c (<code>::new()<\/code>) \u0438 \u043c\u0435\u0442\u043e\u0434\u0430\u043c\u0438 \u0432\u0440\u043e\u0434\u0435 <code>push_str()<\/code><\/li>\n<li><code>&amp;<\/code> \u0432 <code>&amp;str<\/code> \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u0438\u043d\u0434\u0438\u043a\u0430\u0442\u043e\u0440\u043e\u043c \u0442\u043e\u0433\u043e, \u0447\u0442\u043e \u044d\u0442\u043e \u0441\u0441\u044b\u043b\u043a\u0430. \u041c\u044b \u043f\u043e\u0433\u043e\u0432\u043e\u0440\u0438\u043c \u043e \u0441\u0441\u044b\u043b\u043a\u0430\u0445 \u043f\u043e\u0437\u0436\u0435, \u043f\u043e\u043a\u0430 \u0434\u0443\u043c\u0430\u0439\u0442\u0435 \u043e <code>&amp;str<\/code> \u043a\u0430\u043a \u043e \u0441\u0442\u0440\u043e\u043a\u0430\u0445, \u0434\u043e\u0441\u0442\u0443\u043f\u043d\u044b\u0445 \u0442\u043e\u043b\u044c\u043a\u043e \u0434\u043b\u044f \u0447\u0442\u0435\u043d\u0438\u044f<\/li>\n<li>\u0437\u0430\u043a\u043e\u043c\u043c\u0435\u043d\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u0430\u044f \u0441\u0442\u0440\u043e\u043a\u0430 \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u0442 \u0441\u043e\u0431\u043e\u0439 \u0438\u043d\u0434\u0435\u043a\u0441\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u0441\u0442\u0440\u043e\u043a\u0438 \u043f\u043e \u043f\u043e\u0437\u0438\u0446\u0438\u044f\u043c \u0431\u0430\u0439\u0442. <code>12..13<\/code> \u043d\u0435 \u043f\u043e\u043f\u0430\u0434\u0430\u044e\u0442 \u0432 \u0433\u0440\u0430\u043d\u0438\u0446\u044b (boundaries) \u0441\u0438\u043c\u0432\u043e\u043b\u0430, \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0430 \u043f\u0430\u043d\u0438\u043a\u0443\u0435\u0442. \u0418\u0437\u043c\u0435\u043d\u0438\u0442\u0435 \u0434\u0438\u0430\u043f\u0430\u0437\u043e\u043d \u043d\u0430 \u043e\u0441\u043d\u043e\u0432\u0435 \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u044f \u043e\u0431 \u043e\u0448\u0438\u0431\u043a\u0435<\/li>\n<li>\u0441\u044b\u0440\u044b\u0435 (raw) \u0441\u0442\u0440\u043e\u043a\u0438 \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u044e\u0442 \u0441\u043e\u0437\u0434\u0430\u0432\u0430\u0442\u044c <code>&amp;str<\/code> \u0441 \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0438\u043c \u044d\u043a\u0440\u0430\u043d\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435\u043c \u0441\u043f\u0435\u0446\u0438\u0430\u043b\u044c\u043d\u044b\u0445 \u0441\u0438\u043c\u0432\u043e\u043b\u043e\u0432: <code>r\"\\n\" == \"\\\\n\"<\/code>. \u0414\u0432\u043e\u0439\u043d\u044b\u0435 \u043a\u0430\u0432\u044b\u0447\u043a\u0438 \u043c\u043e\u0436\u043d\u043e \u0432\u0441\u0442\u0430\u0432\u0438\u0442\u044c, \u043e\u0431\u0435\u0440\u043d\u0443\u0432 \u0441\u0442\u0440\u043e\u043a\u0443 \u0432 \u043e\u0434\u0438\u043d\u0430\u043a\u043e\u0432\u043e\u0435 \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e <code>#<\/code> \u0441 \u043e\u0431\u0435\u0438\u0445 \u0441\u0442\u043e\u0440\u043e\u043d:<\/li>\n<\/ul>\n<p>  <\/p>\n<pre><code class=\"rust\">fn main() {     \/\/ \u0421\u044b\u0440\u0430\u044f \u0441\u0442\u0440\u043e\u043a\u0430     println!(r#\"&lt;a href=\"link.html\">\u0441\u0441\u044b\u043b\u043a\u0430&lt;\/a>\"#); \/\/ \"&lt;a href=\"link.html\">\u0441\u0441\u044b\u043b\u043a\u0430&lt;\/a>\"     \/\/ \u042d\u043a\u0440\u0430\u043d\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435     println!(\"&lt;a href=\\\"link.html\\\">\u0441\u0441\u044b\u043b\u043a\u0430&lt;\/a>\"); \/\/ &lt;a href=\"link.html\">\u0441\u0441\u044b\u043b\u043a\u0430&lt;\/a> }<\/code><\/pre>\n<p>  <\/p>\n<p><strong>\u0412\u044b\u0432\u0435\u0434\u0435\u043d\u0438\u0435 \u0442\u0438\u043f\u043e\u0432<\/strong><\/p>\n<p>  <\/p>\n<p>\u0414\u043b\u044f \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u0438\u044f\/\u0432\u044b\u0432\u0435\u0434\u0435\u043d\u0438\u044f \u0442\u0438\u043f\u0430 \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u043e\u0439 <code>Rust<\/code> &#171;\u0441\u043c\u043e\u0442\u0440\u0438\u0442&#187; \u043d\u0430 \u0442\u043e, \u043a\u0430\u043a \u043e\u043d\u0430 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f:<\/p>\n<p>  <\/p>\n<pre><code class=\"rust\">fn takes_u32(x: u32) {     println!(\"u32: {x}\"); }  fn takes_i8(y: i8) {     println!(\"i8: {y}\"); }  fn main() {     let x = 10;     let y = 20;      takes_u32(x);     takes_i8(y);     \/\/ takes_u32(y); }<\/code><\/pre>\n<p>  <\/p>\n<p>\u0414\u0435\u0444\u043e\u043b\u0442\u043d\u044b\u043c \u0446\u0435\u043b\u043e\u0447\u0438\u0441\u043b\u0435\u043d\u043d\u044b\u043c \u0442\u0438\u043f\u043e\u043c \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f <code>i32<\/code> (<code>{integer}<\/code> \u0432 \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u044f\u0445 \u043e\u0431 \u043e\u0448\u0438\u0431\u043a\u0430\u0445), \u0430 \u0434\u0435\u0444\u043e\u043b\u0442\u043d\u044b\u043c &#171;\u043f\u043b\u0430\u0432\u0430\u044e\u0449\u0438\u043c&#187; \u0442\u0438\u043f\u043e\u043c \u2014 <code>f64<\/code> (<code>{float}<\/code> \u0432 \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u044f\u0445 \u043e\u0431 \u043e\u0448\u0438\u0431\u043a\u0430\u0445).<\/p>\n<p>  <\/p>\n<pre><code class=\"rust\">fn main() {     let x = 3.14;     let y = 20;     assert_eq!(x, y);     \/\/ ERROR: no implementation for `{float} == {integer}`     \/\/ \u0426\u0435\u043b\u044b\u0435 \u0447\u0438\u0441\u043b\u0430 \u0438 \u0447\u0438\u0441\u043b\u0430 \u0441 \u043f\u043b\u0430\u0432\u0430\u044e\u0449\u0435\u0439 \u0442\u043e\u0447\u043a\u043e\u0439 \u043f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e \u0441\u0440\u0430\u0432\u043d\u0438\u0432\u0430\u0442\u044c \u043c\u0435\u0436\u0434\u0443 \u0441\u043e\u0431\u043e\u0439 \u043d\u0435\u043b\u044c\u0437\u044f }<\/code><\/pre>\n<p>  <\/p>\n<p><strong>\u0423\u043f\u0440\u0430\u0436\u043d\u0435\u043d\u0438\u0435: \u0424\u0438\u0431\u043e\u043d\u0430\u0447\u0447\u0438<\/strong><\/p>\n<p>  <\/p>\n<p>\u041f\u0435\u0440\u0432\u043e\u0435 \u0438 \u0432\u0442\u043e\u0440\u043e\u0435 \u0447\u0438\u0441\u043b\u0430 \u0424\u0438\u0431\u043e\u043d\u0430\u0447\u0447\u0438 \u2014 <code>1<\/code>. \u0414\u043b\u044f <code>n > 2<\/code> <code>nth<\/code> (\u0438\u0442\u043e\u0435) \u0447\u0438\u0441\u043b\u043e \u0424\u0438\u0431\u043e\u043d\u0430\u0447\u0447\u0438 \u0432\u044b\u0447\u0438\u0441\u043b\u044f\u0435\u0442\u0441\u044f \u0440\u0435\u043a\u0443\u0440\u0441\u0438\u0432\u043d\u043e \u043a\u0430\u043a \u0441\u0443\u043c\u043c\u0430 <code>n - 1<\/code> \u0438 <code>n - 2<\/code> \u0447\u0438\u0441\u0435\u043b \u0424\u0438\u0431\u043e\u043d\u0430\u0447\u0447\u0438.<\/p>\n<p>  <\/p>\n<p>\u041d\u0430\u043f\u0438\u0448\u0438\u0442\u0435 \u0444\u0443\u043d\u043a\u0446\u0438\u044e <code>fib(n)<\/code>, \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u0432\u044b\u0447\u0438\u0441\u043b\u044f\u0435\u0442 <code>nth-\u0447\u0438\u0441\u043b\u043e<\/code> \u0424\u0438\u0431\u043e\u043d\u0430\u0447\u0447\u0438.<\/p>\n<p>  <\/p>\n<pre><code class=\"rust\">fn fib(n: u32) -> u32 {     if n &lt;= 2 {         \/\/ \u0411\u0430\u0437\u043e\u0432\u044b\u0439 \u0441\u043b\u0443\u0447\u0430\u0439         todo!(\"\u0440\u0435\u0430\u043b\u0438\u0437\u0443\u0439 \u043c\u0435\u043d\u044f\")     } else {         \/\/ \u0420\u0435\u043a\u0443\u0440\u0441\u0438\u044f         todo!(\"\u0440\u0435\u0430\u043b\u0438\u0437\u0443\u0439 \u043c\u0435\u043d\u044f\")     } }  fn main() {     let n = 20;     println!(\"fib(n) = {}\", fib(n));     \/\/ \u041c\u0430\u043a\u0440\u043e\u0441 \u0434\u043b\u044f \u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0438 \u0434\u0432\u0443\u0445 \u0432\u044b\u0440\u0430\u0436\u0435\u043d\u0438\u0439 \u043d\u0430 \u0440\u0430\u0432\u0435\u043d\u0441\u0442\u0432\u043e.     \/\/ \u041d\u0435\u0440\u0430\u0432\u0435\u043d\u0441\u0442\u0432\u043e \u0432\u044b\u0437\u044b\u0432\u0430\u0435\u0442 \u043f\u0430\u043d\u0438\u043a\u0443     assert_eq!(fib(n), 6765); }<\/code><\/pre>\n<p>  <\/p>\n<div class=\"spoiler\" role=\"button\" tabindex=\"0\">                         <b class=\"spoiler_title\">\u0420\u0435\u0448\u0435\u043d\u0438\u0435<\/b>                         <\/p>\n<div class=\"spoiler_text\">\n<pre><code class=\"rust\">fn fib(n: u32) -> u32 {     if n &lt;= 2 {         return 1;     } else {         return fib(n - 1) + fib(n - 2);     } }  fn main() {     let n = 20;     println!(\"fib(n) = {}\", fib(n));     assert_eq!(fib(n), 6765); }<\/code><\/pre>\n<\/div><\/div>\n<p>  <\/p>\n<h2 id=\"potok-upravleniya\">\u041f\u043e\u0442\u043e\u043a \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u044f<\/h2>\n<p>  <\/p>\n<p><strong>\u0423\u0441\u043b\u043e\u0432\u0438\u044f<\/strong><\/p>\n<p>  <\/p>\n<p>\u0411\u043e\u043b\u044c\u0448\u0430\u044f \u0447\u0430\u0441\u0442\u044c \u0441\u0438\u043d\u0442\u0430\u043a\u0441\u0438\u0441\u0430 \u043f\u043e\u0442\u043e\u043a\u0430 \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u044f <code>Rust<\/code> \u043f\u043e\u0445\u043e\u0436\u0430 \u043d\u0430 <code>C<\/code>, <code>C++<\/code> \u0438\u043b\u0438 <code>Java<\/code>:<\/p>\n<p>  <\/p>\n<ul>\n<li>\u0431\u043b\u043e\u043a\u0438 \u0440\u0430\u0437\u0434\u0435\u043b\u044f\u044e\u0442\u0441\u044f \u0444\u0438\u0433\u0443\u0440\u043d\u044b\u043c\u0438 \u0441\u043a\u043e\u0431\u043a\u0430\u043c\u0438<\/li>\n<li>\u0441\u0442\u0440\u043e\u0447\u043d\u044b\u0435 \u043a\u043e\u043c\u043c\u0435\u043d\u0442\u0430\u0440\u0438\u0438 \u043d\u0430\u0447\u0438\u043d\u0430\u044e\u0442\u0441\u044f \u0441 <code>\/\/<\/code>, \u0431\u043b\u043e\u0447\u043d\u044b\u0435 \u2014 \u0440\u0430\u0437\u0434\u0435\u043b\u044f\u044e\u0442\u0441\u044f <code>\/* ... *\/<\/code><\/li>\n<li>\u043a\u043b\u044e\u0447\u0435\u0432\u044b\u0435 \u0441\u043b\u043e\u0432\u0430 <code>if<\/code> \u0438 <code>while<\/code> \u0440\u0430\u0431\u043e\u0442\u0430\u044e\u0442, \u043a\u0430\u043a \u043e\u0436\u0438\u0434\u0430\u0435\u0442\u0441\u044f<\/li>\n<li>\u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u043c \u043f\u0440\u0438\u0441\u0432\u0430\u0438\u0432\u0430\u044e\u0442\u0441\u044f \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e <code>=<\/code>, \u0441\u0440\u0430\u0432\u043d\u0435\u043d\u0438\u044f \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u044e\u0442\u0441\u044f \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e <code>==<\/code><\/li>\n<\/ul>\n<p>  <\/p>\n<p><em>\u0412\u044b\u0440\u0430\u0436\u0435\u043d\u0438\u044f if<\/em><\/p>\n<p>  <\/p>\n<p><a href=\"https:\/\/doc.rust-lang.org\/reference\/expressions\/if-expr.html#if-expressions\">\u0412\u044b\u0440\u0430\u0436\u0435\u043d\u0438\u044f if<\/a> \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044e\u0442\u0441\u044f \u0432 \u0442\u043e\u0447\u043d\u043e\u0441\u0442\u0438, \u043a\u0430\u043a \u0432 \u0434\u0440\u0443\u0433\u0438\u0445 \u044f\u0437\u044b\u043a\u0430\u0445:<\/p>\n<p>  <\/p>\n<pre><code class=\"rust\">fn main() {     let x = 10;     if x &lt; 20 {         println!(\"\u043c\u0430\u043b\u0435\u043d\u044c\u043a\u043e\u0435\");     } else if x &lt; 100 {         println!(\"\u0431\u043e\u043b\u044c\u0448\u0435\");     } else {         println!(\"\u043e\u0433\u0440\u043e\u043c\u043d\u043e\u0435\");     } }<\/code><\/pre>\n<p>  <\/p>\n<p>\u041a\u0440\u043e\u043c\u0435 \u0442\u043e\u0433\u043e, <code>if<\/code> \u043c\u043e\u0436\u043d\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u043a\u0430\u043a \u0432\u044b\u0440\u0430\u0436\u0435\u043d\u0438\u0435, \u0432\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u044e\u0449\u0435\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435. \u041f\u043e\u0441\u043b\u0435\u0434\u043d\u0435\u0435 \u0432\u044b\u0440\u0430\u0436\u0435\u043d\u0438\u0435 \u043a\u0430\u0436\u0434\u043e\u0433\u043e \u0431\u043b\u043e\u043a\u0430 \u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u0441\u044f \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435\u043c \u0432\u044b\u0440\u0430\u0436\u0435\u043d\u0438\u044f <code>if<\/code>:<\/p>\n<p>  <\/p>\n<pre><code class=\"rust\">fn main() {     let x = 10;     let size = if x &lt; 20 { \"\u043c\u0430\u043b\u0435\u043d\u044c\u043a\u043e\u0435\" } else { \"\u0431\u043e\u043b\u044c\u0448\u043e\u0435\" };     println!(\"\u0440\u0430\u0437\u043c\u0435\u0440 \u0447\u0438\u0441\u043b\u0430: {}\", size); }<\/code><\/pre>\n<p>  <\/p>\n<p>\u041f\u043e\u0441\u043a\u043e\u043b\u044c\u043a\u0443 <code>if<\/code> \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u0432\u044b\u0440\u0430\u0436\u0435\u043d\u0438\u0435\u043c \u0438 \u0434\u043e\u043b\u0436\u043d\u043e \u0438\u043c\u0435\u0442\u044c \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u043d\u044b\u0439 \u0442\u0438\u043f, \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u043e\u0431\u043e\u0438\u0445 \u0431\u043b\u043e\u043a\u043e\u0432 \u0434\u043e\u043b\u0436\u043d\u044b \u0431\u044b\u0442\u044c \u043e\u0434\u043d\u043e\u0433\u043e \u0442\u0438\u043f\u0430. \u041f\u043e\u043f\u0440\u043e\u0431\u0443\u0439\u0442\u0435 \u0434\u043e\u0431\u0430\u0432\u0438\u0442\u044c <code>;<\/code> \u043f\u043e\u0441\u043b\u0435 <code>\u043c\u0430\u043b\u0435\u043d\u044c\u043a\u043e\u0435<\/code> \u0432\u043e \u0432\u0442\u043e\u0440\u043e\u043c \u043f\u0440\u0438\u043c\u0435\u0440\u0435.<\/p>\n<p>  <\/p>\n<p>\u041f\u0440\u0438 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0438 <code>if<\/code> \u0432 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435 \u0432\u044b\u0440\u0430\u0436\u0435\u043d\u0438\u044f, \u043e\u043d\u043e \u0434\u043e\u043b\u0436\u043d\u043e \u0437\u0430\u043a\u0430\u043d\u0447\u0438\u0432\u0430\u0442\u044c\u0441\u044f <code>;<\/code> \u0434\u043b\u044f \u0435\u0433\u043e \u043e\u0442\u0434\u0435\u043b\u0435\u043d\u0438\u044f \u043e\u0442 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0435\u0439 \u0438\u043d\u0441\u0442\u0440\u0443\u043a\u0446\u0438\u0438. \u041f\u043e\u043f\u0440\u043e\u0431\u0443\u0439\u0442\u0435 \u0443\u0434\u0430\u043b\u0438\u0442\u044c <code>;<\/code> \u043f\u0435\u0440\u0435\u0434 <code>println!()<\/code>.<\/p>\n<p>  <\/p>\n<p><strong>\u0426\u0438\u043a\u043b\u044b<\/strong><\/p>\n<p>  <\/p>\n<p><code>Rust<\/code> \u043f\u0440\u0435\u0434\u043e\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u0442 3 \u043a\u043b\u044e\u0447\u0435\u0432\u044b\u0445 \u0441\u043b\u043e\u0432\u0430 \u0434\u043b\u044f \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u044f \u0446\u0438\u043a\u043b\u043e\u0432: <code>while<\/code>, <code>loop<\/code> \u0438 <code>for<\/code>.<\/p>\n<p>  <\/p>\n<p><em>while<\/em><\/p>\n<p>  <\/p>\n<p>\u041a\u043b\u044e\u0447\u0435\u0432\u043e\u0435 \u0441\u043b\u043e\u0432\u043e <a href=\"https:\/\/doc.rust-lang.org\/reference\/expressions\/loop-expr.html#predicate-loops\">while<\/a> \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442, \u043a\u0430\u043a \u0432 \u0434\u0440\u0443\u0433\u0438\u0445 \u044f\u0437\u044b\u043a\u0430\u0445 \u2014 \u0442\u0435\u043b\u043e \u0446\u0438\u043a\u043b\u0430 \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u0435\u0442\u0441\u044f, \u043f\u043e\u043a\u0430 \u0443\u0441\u043b\u043e\u0432\u0438\u0435 \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u0438\u0441\u0442\u0438\u043d\u043d\u044b\u043c:<\/p>\n<p>  <\/p>\n<pre><code class=\"rust\">fn main() {     let mut x = 200;     while x >= 10 {         x = x \/ 2;     }     println!(\"\u0438\u0442\u043e\u0433\u043e\u0432\u043e\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 x: {x}\"); }<\/code><\/pre>\n<p>  <\/p>\n<p><em>for<\/em><\/p>\n<p>  <\/p>\n<p>\u0426\u0438\u043a\u043b <a href=\"https:\/\/doc.rust-lang.org\/std\/keyword.for.html\">for<\/a> \u043f\u0435\u0440\u0435\u0431\u0438\u0440\u0430\u0435\u0442 \u0434\u0438\u0430\u043f\u0430\u0437\u043e\u043d \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0439:<\/p>\n<p>  <\/p>\n<pre><code class=\"rust\">fn main() {     for x in 1..5 {         println!(\"x: {x}\");     } }<\/code><\/pre>\n<p>  <\/p>\n<p><em>loop<\/em><\/p>\n<p>  <\/p>\n<p>\u0426\u0438\u043a\u043b <a href=\"https:\/\/doc.rust-lang.org\/std\/keyword.loop.html\">loop<\/a> \u043f\u0440\u043e\u0434\u043e\u043b\u0436\u0430\u0435\u0442\u0441\u044f \u0434\u043e \u043f\u0440\u0435\u0440\u044b\u0432\u0430\u043d\u0438\u044f \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e <code>break<\/code>:<\/p>\n<p>  <\/p>\n<pre><code class=\"rust\">fn main() {     let mut i = 0;     loop {         i += 1;         println!(\"{i}\");         if i > 100 {             break;         }     } }<\/code><\/pre>\n<p>  <\/p>\n<ul>\n<li>\u041c\u044b \u043f\u043e\u0434\u0440\u043e\u0431\u043d\u043e \u043e\u0431\u0441\u0443\u0434\u0438\u043c \u0438\u0442\u0435\u0440\u0430\u0442\u043e\u0440\u044b \u043f\u043e\u0437\u0436\u0435<\/li>\n<li>\u043e\u0431\u0440\u0430\u0442\u0438\u0442\u0435 \u0432\u043d\u0438\u043c\u0430\u043d\u0438\u0435, \u0447\u0442\u043e \u0446\u0438\u043a\u043b <code>for<\/code> \u0438\u0442\u0435\u0440\u0438\u0440\u0443\u0435\u0442\u0441\u044f \u0434\u043e 4. \u0414\u043b\u044f &#171;\u0432\u043a\u043b\u044e\u0447\u0430\u044e\u0449\u0435\u0433\u043e&#187; \u0434\u0438\u0430\u043f\u0430\u0437\u043e\u043d\u0430 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f \u0441\u0438\u043d\u0442\u0430\u043a\u0441\u0438\u0441 <code>1..=5<\/code><\/li>\n<\/ul>\n<p>  <\/p>\n<p><strong>break \u0438 continue<\/strong><\/p>\n<p>  <\/p>\n<p>\u041a\u043b\u044e\u0447\u0435\u0432\u043e\u0435 \u0441\u043b\u043e\u0432\u043e <a href=\"https:\/\/doc.rust-lang.org\/reference\/expressions\/loop-expr.html#break-expressions\">break<\/a> \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f \u0434\u043b\u044f \u0440\u0430\u043d\u043d\u0435\u0433\u043e \u0432\u044b\u0445\u043e\u0434\u0430 (early exit) \u0438\u0437 \u0446\u0438\u043a\u043b\u0430. \u0414\u043b\u044f <code>loop<\/code> <code>break<\/code> \u043c\u043e\u0436\u0435\u0442 \u043f\u0440\u0438\u043d\u0438\u043c\u0430\u0442\u044c \u043e\u043f\u0446\u0438\u043e\u043d\u0430\u043b\u044c\u043d\u043e\u0435 \u0432\u044b\u0440\u0430\u0436\u0435\u043d\u0438\u0435, \u043a\u043e\u0442\u043e\u0440\u043e\u0435 \u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u0441\u044f \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435\u043c \u0432\u044b\u0440\u0430\u0436\u0435\u043d\u0438\u044f <code>loop<\/code>.<\/p>\n<p>  <\/p>\n<p>\u0414\u043b\u044f \u043d\u0435\u0437\u0430\u043c\u0435\u0434\u043b\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0433\u043e \u043f\u0435\u0440\u0435\u0445\u043e\u0434\u0430 \u043a \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0435\u0439 \u0438\u0442\u0435\u0440\u0430\u0446\u0438\u0438 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f \u043a\u043b\u044e\u0447\u0435\u0432\u043e\u0435 \u0441\u043b\u043e\u0432\u043e <a href=\"https:\/\/doc.rust-lang.org\/reference\/expressions\/loop-expr.html#continue-expressions\">continue<\/a>.<\/p>\n<p>  <\/p>\n<pre><code class=\"rust\">fn main() {     let (mut a, mut b) = (100, 52);     let result = loop {         if a == b {             break a;         }         if a &lt; b {             b -= a;         } else {             a -= b;         }     };     println!(\"{result}\"); }<\/code><\/pre>\n<p>  <\/p>\n<p><code>continue<\/code> \u0438 <code>break<\/code> \u043c\u043e\u0433\u0443\u0442 \u043f\u043e\u043c\u0435\u0447\u0430\u0442\u044c\u0441\u044f \u043c\u0435\u0442\u043a\u0430\u043c\u0438 (labels):<\/p>\n<p>  <\/p>\n<pre><code class=\"rust\">fn main() {     'outer: for x in 1..5 {         println!(\"x: {x}\");         let mut i = 0;         while i &lt; x {             println!(\"x: {x}, i: {i}\");             i += 1;             if i == 3 {                 break 'outer;             }         }     } }<\/code><\/pre>\n<p>  <\/p>\n<p>\u0412 \u043f\u0440\u0438\u043c\u0435\u0440\u0435 \u043c\u044b \u043f\u0440\u0435\u0440\u044b\u0432\u0430\u0435\u043c \u0432\u043d\u0435\u0448\u043d\u0438\u0439 \u0446\u0438\u043a\u043b \u043f\u043e\u0441\u043b\u0435 3 \u0438\u0442\u0435\u0440\u0430\u0446\u0438\u0439 \u0432\u043d\u0443\u0442\u0440\u0435\u043d\u043d\u0435\u0433\u043e \u0446\u0438\u043a\u043b\u0430.<\/p>\n<p>  <\/p>\n<p>\u041e\u0431\u0440\u0430\u0442\u0438\u0442\u0435 \u0432\u043d\u0438\u043c\u0430\u043d\u0438\u0435, \u0447\u0442\u043e \u0442\u043e\u043b\u044c\u043a\u043e <code>loop<\/code> \u043c\u043e\u0436\u0435\u0442 \u0432\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0442\u044c \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f. \u042d\u0442\u043e \u0441\u0432\u044f\u0437\u0430\u043d\u043e \u0441 \u0442\u0435\u043c, \u0447\u0442\u043e \u0446\u0438\u043a\u043b <code>loop<\/code> \u0433\u0430\u0440\u0430\u043d\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u043e \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u0435\u0442\u0441\u044f \u0445\u043e\u0442\u044f \u0431\u044b \u0440\u0430\u0437 (\u0432 \u043e\u0442\u043b\u0438\u0447\u0438\u0435 \u043e\u0442 \u0446\u0438\u043a\u043b\u043e\u0432 <code>while<\/code> \u0438 <code>for<\/code>).<\/p>\n<p>  <\/p>\n<p><strong>\u0411\u043b\u043e\u043a\u0438 \u0438 \u043e\u0431\u043b\u0430\u0441\u0442\u0438 \u0432\u0438\u0434\u0438\u043c\u043e\u0441\u0442\u0438<\/strong><\/p>\n<p>  <\/p>\n<p><em>\u0411\u043b\u043e\u043a\u0438<\/em><\/p>\n<p>  <\/p>\n<p>\u0411\u043b\u043e\u043a \u0432 <code>Rust<\/code> \u0441\u043e\u0434\u0435\u0440\u0436\u0438\u0442 \u043f\u043e\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u044c \u0432\u044b\u0440\u0430\u0436\u0435\u043d\u0438\u0439. \u0423 \u043a\u0430\u0436\u0434\u043e\u0433\u043e \u0431\u043b\u043e\u043a\u0430 \u0435\u0441\u0442\u044c \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u0438 \u0442\u0438\u043f, \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u044e\u0449\u0438\u0435 \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u0435\u043c\u0443 \u0432\u044b\u0440\u0430\u0436\u0435\u043d\u0438\u044e \u0431\u043b\u043e\u043a\u0430:<\/p>\n<p>  <\/p>\n<pre><code class=\"rust\">fn main() {     let z = 13;     let x = {         let y = 10;         println!(\"y: {y}\");         z - y     };     println!(\"x: {x}\"); }<\/code><\/pre>\n<p>  <\/p>\n<p>\u0415\u0441\u043b\u0438 \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u0435\u0435 \u0432\u044b\u0440\u0430\u0436\u0435\u043d\u0438\u0435 \u0437\u0430\u043a\u0430\u043d\u0447\u0438\u0432\u0430\u0435\u0442\u0441\u044f <code>;<\/code>, \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0438\u0440\u0443\u044e\u0449\u0438\u043c \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435\u043c \u0438 \u0442\u0438\u043f\u043e\u043c \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f <code>()<\/code> (\u043f\u0443\u0441\u0442\u043e\u0439 \u0442\u0438\u043f\/\u043a\u043e\u0440\u0442\u0435\u0436 \u2014 unit type).<\/p>\n<p>  <\/p>\n<p><em>\u041e\u0431\u043b\u0430\u0441\u0442\u0438 \u0432\u0438\u0434\u0438\u043c\u043e\u0441\u0442\u0438 \u0438 \u0437\u0430\u0442\u0435\u043d\u0435\u043d\u0438\u0435<\/em><\/p>\n<p>  <\/p>\n<p>\u041e\u0431\u043b\u0430\u0441\u0442\u044c\u044e \u0432\u0438\u0434\u0438\u043c\u043e\u0441\u0442\u0438 (scope) \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u043e\u0439 \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u0431\u043b\u0438\u0436\u0430\u0439\u0448\u0438\u0439 \u043a \u043d\u0435\u0439 \u0431\u043b\u043e\u043a.<\/p>\n<p>  <\/p>\n<p>\u041f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0435 \u043c\u043e\u0436\u043d\u043e \u0437\u0430\u0442\u0435\u043d\u044f\u0442\u044c\/\u043f\u0435\u0440\u0435\u043e\u043f\u0440\u0435\u0434\u0435\u043b\u044f\u0442\u044c (shadow), \u043a\u0430\u043a \u0432\u043d\u0435\u0448\u043d\u0438\u0435, \u0442\u0430\u043a \u0438 \u0438\u0437 \u0442\u043e\u0439 \u0436\u0435 \u043e\u0431\u043b\u0430\u0441\u0442\u0438 \u0432\u0438\u0434\u0438\u043c\u043e\u0441\u0442\u0438:<\/p>\n<p>  <\/p>\n<pre><code class=\"rust\">fn main() {     let a = 10;     println!(\"\u043f\u0435\u0440\u0435\u0434: {a}\");     {         let a = \"\u043f\u0440\u0438\u0432\u0435\u0442\";         println!(\"\u0432\u043d\u0443\u0442\u0440\u0435\u043d\u043d\u044f\u044f \u043e\u0431\u043b\u0430\u0441\u0442\u044c \u0432\u0438\u0434\u0438\u043c\u043e\u0441\u0442\u0438: {a}\");          let a = true;         println!(\"\u0437\u0430\u0442\u0435\u043d\u0435\u043d\u0438\u0435 \u0432\u043e \u0432\u043d\u0443\u0442\u0440\u0435\u043d\u043d\u0435\u0439 \u043e\u0431\u043b\u0430\u0441\u0442\u0438 \u0432\u0438\u0434\u0438\u043c\u043e\u0441\u0442\u0438: {a}\");     }      println!(\"\u043f\u043e\u0441\u043b\u0435: {a}\"); }<\/code><\/pre>\n<p>  <\/p>\n<ul>\n<li>\u0414\u043b\u044f \u0442\u043e\u0433\u043e, \u0447\u0442\u043e\u0431\u044b \u0443\u0431\u0435\u0434\u0438\u0442\u044c\u0441\u044f \u0432 \u0442\u043e\u043c, \u0447\u0442\u043e \u043e\u0431\u043b\u0430\u0441\u0442\u044c \u0432\u0438\u0434\u0438\u043c\u043e\u0441\u0442\u0438 \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u043e\u0439 \u043e\u0433\u0440\u0430\u043d\u0438\u0447\u0435\u043d\u0430 \u0444\u0438\u0433\u0443\u0440\u043d\u044b\u043c\u0438 \u0441\u043a\u043e\u0431\u043a\u0430\u043c\u0438, \u0434\u043e\u0431\u0430\u0432\u044c\u0442\u0435 \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u0443\u044e <code>b<\/code> \u0432\u043e \u0432\u043d\u0443\u0442\u0440\u0435\u043d\u043d\u044e\u044e \u043e\u0431\u043b\u0430\u0441\u0442\u044c \u0432\u0438\u0434\u0438\u043c\u043e\u0441\u0442\u0438 \u0438 \u043f\u043e\u043f\u0440\u043e\u0431\u0443\u0439\u0442\u0435 \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c \u043a \u043d\u0435\u0439 \u0434\u043e\u0441\u0442\u0443\u043f \u0432\u043e \u0432\u043d\u0435\u0448\u043d\u0435\u0439 \u043e\u0431\u043b\u0430\u0441\u0442\u0438 \u0432\u0438\u0434\u0438\u043c\u043e\u0441\u0442\u0438<\/li>\n<li>\u0437\u0430\u0442\u0435\u043d\u0435\u043d\u0438\u0435 \u043e\u0442\u043b\u0438\u0447\u0430\u0435\u0442\u0441\u044f \u043e\u0442 \u043c\u0443\u0442\u0430\u0446\u0438\u0438, \u043f\u043e\u0441\u043a\u043e\u043b\u044c\u043a\u0443 \u043f\u043e\u0441\u043b\u0435 \u0437\u0430\u0442\u0435\u043d\u0435\u043d\u0438\u044f \u043e\u0431\u0435 \u043b\u043e\u043a\u0430\u0446\u0438\u0438 \u043f\u0430\u043c\u044f\u0442\u0438 \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u043e\u0439 \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u044e\u0442 \u0432 \u043e\u0434\u043d\u043e \u0432\u0440\u0435\u043c\u044f. \u041e\u0431\u0435 \u0434\u043e\u0441\u0442\u0443\u043f\u043d\u044b \u043f\u043e\u0434 \u043e\u0434\u043d\u0438\u043c \u043d\u0430\u0437\u0432\u0430\u043d\u0438\u0435\u043c \u0432 \u0437\u0430\u0432\u0438\u0441\u0438\u043c\u043e\u0441\u0442\u0438 \u043e\u0442 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u044f \u0432 \u043a\u043e\u0434\u0435<\/li>\n<li>\u0437\u0430\u0442\u0435\u043d\u044f\u0435\u043c\u0430\u044f \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u0430\u044f \u043c\u043e\u0436\u0435\u0442 \u0438\u043c\u0435\u0442\u044c \u0434\u0440\u0443\u0433\u043e\u0439 \u0442\u0438\u043f<\/li>\n<li>\u043f\u043e\u043d\u0430\u0447\u0430\u043b\u0443 \u0437\u0430\u0442\u0435\u043d\u0435\u043d\u0438\u0435 \u0432\u044b\u0433\u043b\u044f\u0434\u0438\u0442 \u043d\u0435\u044f\u0441\u043d\u044b\u043c, \u043d\u043e \u043e\u043d\u043e \u0443\u0434\u043e\u0431\u043d\u043e \u0434\u043b\u044f \u0441\u043e\u0445\u0440\u0430\u043d\u0435\u043d\u0438\u044f \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0439 \u043f\u043e\u0441\u043b\u0435 <code>unwrap()<\/code> (\u0440\u0430\u0441\u043f\u0430\u043a\u043e\u0432\u043a\u0438)<\/li>\n<\/ul>\n<p>  <\/p>\n<p><strong>\u0424\u0443\u043d\u043a\u0446\u0438\u0438<\/strong><\/p>\n<p>  <\/p>\n<pre><code class=\"rust\">fn gcd(a: u32, b: u32) -> u32 {     if b > 0 {         gcd(b, a % b)     } else {         a     } }  fn main() {     println!(\"\u043d\u0430\u0438\u0431\u043e\u043b\u044c\u0448\u0438\u0439 \u043e\u0431\u0449\u0438\u0439 \u0434\u0435\u043b\u0438\u0442\u0435\u043b\u044c: {}\", gcd(143, 52)); }<\/code><\/pre>\n<p>  <\/p>\n<ul>\n<li>\u0422\u0438\u043f\u044b \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u044f\u044e\u0442\u0441\u044f \u043a\u0430\u043a \u0434\u043b\u044f \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u043e\u0432, \u0442\u0430\u043a \u0438 \u0434\u043b\u044f \u0432\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u043c\u043e\u0433\u043e \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f<\/li>\n<li>\u043f\u043e\u0441\u043b\u0435\u0434\u043d\u0435\u0435 \u0432\u044b\u0440\u0430\u0436\u0435\u043d\u0438\u0435 \u0432 \u0442\u0435\u043b\u0435 \u0444\u0443\u043d\u043a\u0446\u0438\u0438 \u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u0441\u044f \u0432\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u043c\u044b\u043c \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435\u043c (\u043f\u043e\u0441\u043b\u0435 \u043d\u0435\u0433\u043e \u043d\u0435 \u0434\u043e\u043b\u0436\u043d\u043e \u0431\u044b\u0442\u044c <code>;<\/code>). \u0414\u043b\u044f \u0440\u0430\u043d\u043d\u0435\u0433\u043e \u0432\u043e\u0437\u0432\u0440\u0430\u0442\u0430 \u043c\u043e\u0436\u0435\u0442 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c\u0441\u044f \u043a\u043b\u044e\u0447\u0435\u0432\u043e\u0435 \u0441\u043b\u043e\u0432\u043e <code>return<\/code><\/li>\n<li>\u0434\u0435\u0444\u043e\u043b\u0442\u043d\u044b\u043c \u0442\u0438\u043f\u043e\u043c, \u0432\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u043c\u044b\u043c \u0444\u0443\u043d\u043a\u0446\u0438\u0435\u0439, \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f <code>()<\/code> (\u044d\u0442\u043e \u0441\u043f\u0440\u0430\u0432\u0435\u0434\u043b\u0438\u0432\u043e \u0442\u0430\u043a\u0436\u0435 \u0434\u043b\u044f \u0444\u0443\u043d\u043a\u0446\u0438\u0439, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043d\u0438\u0447\u0435\u0433\u043e \u043d\u0435 \u0432\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u044e\u0442 \u044f\u0432\u043d\u043e)<\/li>\n<li>\u043f\u0435\u0440\u0435\u0433\u0440\u0443\u0437\u043a\u0430 \u0444\u0443\u043d\u043a\u0446\u0438\u0439 \u0432 <code>Rust<\/code> \u043d\u0435 \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u0435\u0442\u0441\u044f<br \/> \n<ul>\n<li>\u0447\u0438\u0441\u043b\u043e \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u043e\u0432 \u0432\u0441\u0435\u0433\u0434\u0430 \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u0444\u0438\u043a\u0441\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u043c. \u041f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u044b \u043f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e \u043d\u0435 \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u044e\u0442\u0441\u044f. \u0414\u043b\u044f \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u044f \u0444\u0443\u043d\u043a\u0446\u0438\u0439 \u0441 \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u043c \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e\u043c \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u043e\u0432 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044e\u0442\u0441\u044f \u043c\u0430\u043a\u0440\u043e\u0441\u044b (macros)<\/li>\n<li>\u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u044b \u0438\u043c\u0435\u044e\u0442 \u0442\u0438\u043f\u044b. \u042d\u0442\u0438 \u0442\u0438\u043f\u044b \u043c\u043e\u0433\u0443\u0442 \u0431\u044b\u0442\u044c \u043e\u0431\u0449\u0438\u043c\u0438 (\u0434\u0436\u0435\u043d\u0435\u0440\u0438\u043a\u0430\u043c\u0438 \u2014 generics). \u041c\u044b \u043e\u0431\u0441\u0443\u0434\u0438\u043c \u044d\u0442\u043e \u043f\u043e\u0437\u0436\u0435<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<p>  <\/p>\n<p><strong>\u041c\u0430\u043a\u0440\u043e\u0441\u044b<\/strong><\/p>\n<p>  <\/p>\n<p>\u041c\u0430\u043a\u0440\u043e\u0441\u044b \u0440\u0430\u0441\u043a\u0440\u044b\u0432\u0430\u044e\u0442\u0441\u044f (expanded) \u0432 \u043a\u043e\u0434\u0435 \u0432 \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u0435 \u043a\u043e\u043c\u043f\u0438\u043b\u044f\u0446\u0438\u0438 \u0438 \u043c\u043e\u0433\u0443\u0442 \u043f\u0440\u0438\u043d\u0438\u043c\u0430\u0442\u044c \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u043e\u0435 \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u043e\u0432. \u041e\u043d\u0438 \u043e\u0431\u043e\u0437\u043d\u0430\u0447\u0430\u044e\u0442\u0441\u044f \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e <code>!<\/code> \u0432 \u043a\u043e\u043d\u0446\u0435. \u0421\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043d\u0430\u044f \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0430 <code>Rust<\/code> \u0432\u043a\u043b\u044e\u0447\u0430\u0435\u0442 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u043f\u043e\u043b\u0435\u0437\u043d\u044b\u0445 \u043c\u0430\u043a\u0440\u043e\u0441\u043e\u0432:<\/p>\n<p>  <\/p>\n<ul>\n<li><code>println!(format, ..)<\/code> \u2014 \u043f\u0435\u0447\u0430\u0442\u0430\u0435\u0442 \u0441\u0442\u0440\u043e\u043a\u0443 \u0432 \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043d\u044b\u0439 \u0432\u044b\u0432\u043e\u0434, \u043f\u0440\u0438\u043c\u0435\u043d\u044f\u044f \u0444\u043e\u0440\u043c\u0430\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435, \u043e\u043f\u0438\u0441\u0430\u043d\u043d\u043e\u0435 \u0432 <a href=\"https:\/\/doc.rust-lang.org\/std\/fmt\/index.html\">std::fmt<\/a><\/li>\n<li><code>format!(format, ..)<\/code> \u2014 \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442 \u043a\u0430\u043a <code>println!()<\/code>, \u043d\u043e \u0432\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u0442 \u0441\u0442\u0440\u043e\u043a\u0443<\/li>\n<li><code>dbg!(expression)<\/code> \u2014 \u0432\u044b\u0432\u043e\u0434\u0438\u0442 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u0432\u044b\u0440\u0430\u0436\u0435\u043d\u0438\u044f \u0432 \u0442\u0435\u0440\u043c\u0438\u043d\u0430\u043b \u0438 \u0432\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u0442 \u0435\u0433\u043e<\/li>\n<li><code>todo!()<\/code> \u2014 \u043f\u043e\u043c\u0435\u0447\u0430\u0435\u0442 \u043a\u043e\u0434 \u043a\u0430\u043a \u0435\u0449\u0435 \u043d\u0435 \u0440\u0435\u0430\u043b\u0438\u0437\u043e\u0432\u0430\u043d\u043d\u044b\u0439. \u0412\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u0435 \u044d\u0442\u043e\u0433\u043e \u043a\u043e\u0434\u0430 \u043f\u0440\u0438\u0432\u043e\u0434\u0438\u0442 \u043a \u043f\u0430\u043d\u0438\u043a\u0435 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u044b<\/li>\n<li><code>unreachable!()<\/code> \u2014 \u043f\u043e\u043c\u0435\u0447\u0430\u0435\u0442 \u043a\u043e\u0434 \u043a\u0430\u043a \u043d\u0435\u0434\u043e\u0441\u0442\u0438\u0436\u0438\u043c\u044b\u0439. \u0412\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u0435 \u044d\u0442\u043e\u0433\u043e \u043a\u043e\u0434\u0430 \u043f\u0440\u0438\u0432\u043e\u0434\u0438\u0442 \u043a \u043f\u0430\u043d\u0438\u043a\u0435 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u044b<\/li>\n<\/ul>\n<p>  <\/p>\n<pre><code class=\"rust\">fn factorial(n: u32) -> u32 {     let mut product = 1;     for i in 1..=n {         product *= dbg!(i);     }     product }  fn fizzbuzz(n: u32) -> u32 {     todo!(\"\u0440\u0435\u0430\u043b\u0438\u0437\u0443\u0439 \u043c\u0435\u043d\u044f\") }  fn main() {     let n = 13;     println!(\"{n}! = {}\", factorial(4)); }<\/code><\/pre>\n<p>  <\/p>\n<p><strong>\u0423\u043f\u0440\u0430\u0436\u043d\u0435\u043d\u0438\u0435: \u0433\u0438\u043f\u043e\u0442\u0435\u0437\u0430 \u041a\u043e\u043b\u043b\u0430\u0442\u0446\u0430<\/strong><\/p>\n<p>  <\/p>\n<p>\u0414\u043b\u044f \u043e\u0431\u044a\u044f\u0441\u043d\u0435\u043d\u0438\u044f \u0441\u0443\u0442\u0438 <a href=\"https:\/\/ru.wikipedia.org\/wiki\/%D0%93%D0%B8%D0%BF%D0%BE%D1%82%D0%B5%D0%B7%D0%B0_%D0%9A%D0%BE%D0%BB%D0%BB%D0%B0%D1%82%D1%86%D0%B0\">\u0433\u0438\u043f\u043e\u0442\u0435\u0437\u044b \u041a\u043e\u043b\u043b\u0430\u0442\u0446\u0430<\/a> \u0440\u0430\u0441\u0441\u043c\u043e\u0442\u0440\u0438\u043c \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0443\u044e \u043f\u043e\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u044c \u0447\u0438\u0441\u0435\u043b, \u043d\u0430\u0437\u044b\u0432\u0430\u0435\u043c\u0443\u044e \u0441\u0438\u0440\u0430\u043a\u0443\u0437\u0441\u043a\u043e\u0439 \u043f\u043e\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u044c\u044e. \u0411\u0435\u0440\u0435\u043c \u043b\u044e\u0431\u043e\u0435 \u043d\u0430\u0442\u0443\u0440\u0430\u043b\u044c\u043d\u043e\u0435 \u0447\u0438\u0441\u043b\u043e <code>n<\/code>. \u0415\u0441\u043b\u0438 \u043e\u043d\u043e \u0447\u0435\u0442\u043d\u043e\u0435, \u0442\u043e \u0434\u0435\u043b\u0438\u043c \u0435\u0433\u043e \u043d\u0430 2, \u0430 \u0435\u0441\u043b\u0438 \u043d\u0435\u0447\u0435\u0442\u043d\u043e\u0435, \u0442\u043e \u0443\u043c\u043d\u043e\u0436\u0430\u0435\u043c \u043d\u0430 3 \u0438 \u043f\u0440\u0438\u0431\u0430\u0432\u043b\u044f\u0435\u043c 1 (\u043f\u043e\u043b\u0443\u0447\u0430\u0435\u043c <code>3n + 1<\/code>). \u041d\u0430\u0434 \u043f\u043e\u043b\u0443\u0447\u0435\u043d\u043d\u044b\u043c \u0447\u0438\u0441\u043b\u043e\u043c \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u0435\u043c \u0442\u0435 \u0436\u0435 \u0441\u0430\u043c\u044b\u0435 \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u044f, \u0438 \u0442\u0430\u043a \u0434\u0430\u043b\u0435\u0435. \u041f\u043e\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u044c \u043f\u0440\u0435\u0440\u044b\u0432\u0430\u0435\u0442\u0441\u044f \u043d\u0430 <code>ni<\/code>, \u0435\u0441\u043b\u0438 <code>ni<\/code> \u0440\u0430\u0432\u043d\u044f\u0435\u0442\u0441\u044f 1.<\/p>\n<p>  <\/p>\n<p>\u041d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u0434\u043b\u044f \u0447\u0438\u0441\u043b\u0430 3 \u043f\u043e\u043b\u0443\u0447\u0430\u0435\u043c:<\/p>\n<p>  <\/p>\n<ul>\n<li>3 \u2014 \u043d\u0435\u0447\u0435\u0442\u043d\u043e\u0435, 3*3 + 1 = 10<\/li>\n<li>10 \u2014 \u0447\u0435\u0442\u043d\u043e\u0435, 10:2 = 5<\/li>\n<li>5 \u2014 \u043d\u0435\u0447\u0435\u0442\u043d\u043e\u0435, 5*3 + 1 = 16<\/li>\n<li>16 \u2014 \u0447\u0435\u0442\u043d\u043e\u0435, 16\/2 = 8<\/li>\n<li>8 \u2014 \u0447\u0435\u0442\u043d\u043e\u0435, 8\/2 = 4<\/li>\n<li>4 \u2014 \u0447\u0435\u0442\u043d\u043e\u0435, 4\/2 = 2<\/li>\n<li>2 \u2014 \u0447\u0435\u0442\u043d\u043e\u0435, 2\/2 = 1<\/li>\n<li>1 \u2014 \u043d\u0435\u0447\u0435\u0442\u043d\u043e\u0435 (\u043f\u043e\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u044c \u043f\u0440\u0435\u0440\u044b\u0432\u0430\u0435\u0442\u0441\u044f, <code>n<\/code> \u0440\u0430\u0432\u043d\u044f\u0435\u0442\u0441\u044f 8)<\/li>\n<\/ul>\n<p>  <\/p>\n<p>\u041d\u0430\u043f\u0438\u0448\u0438\u0442\u0435 \u0444\u0443\u043d\u043a\u0446\u0438\u044e \u0434\u043b\u044f \u0432\u044b\u0447\u0438\u0441\u043b\u0435\u043d\u0438\u044f \u0441\u0438\u0440\u0430\u043a\u0443\u0437\u0441\u043a\u043e\u0439 \u043f\u043e\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u0438 \u0434\u043b\u044f \u0443\u043a\u0430\u0437\u0430\u043d\u043d\u043e\u0433\u043e \u0447\u0438\u0441\u043b\u0430 <code>n<\/code>.<\/p>\n<p>  <\/p>\n<pre><code class=\"rust\">fn collatz_length(mut n: i32) -> u32 {   todo!(\"\u0440\u0435\u0430\u043b\u0438\u0437\u0443\u0439 \u043c\u0435\u043d\u044f\") }  fn main() {   println!(\"\u0434\u043b\u0438\u043d\u0430 \u043f\u043e\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u0438: {}\", collatz_length(11));   assert_eq!(collatz_length(11), 15); }<\/code><\/pre>\n<p>  <\/p>\n<div class=\"spoiler\" role=\"button\" tabindex=\"0\">                         <b class=\"spoiler_title\">\u0420\u0435\u0448\u0435\u043d\u0438\u0435<\/b>                         <\/p>\n<div class=\"spoiler_text\">\n<pre><code class=\"rust\">fn collatz_length(mut n: i32) -> u32 {     let mut len = 1;     while n > 1 {         n = if n % 2 == 0 { n \/ 2 } else { 3 * n + 1 };         len += 1;     }     len }  fn main() {     println!(\"\u0434\u043b\u0438\u043d\u0430 \u043f\u043e\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u0438: {}\", collatz_length(11));     assert_eq!(collatz_length(11), 15); }<\/code><\/pre>\n<\/div><\/div>\n<p>  <\/p>\n<h2 id=\"kortezhi-i-massivy\">\u041a\u043e\u0440\u0442\u0435\u0436\u0438 \u0438 \u043c\u0430\u0441\u0441\u0438\u0432\u044b<\/h2>\n<p>  <\/p>\n<p><strong>\u041a\u043e\u0440\u0442\u0435\u0436\u0438 \u0438 \u043c\u0430\u0441\u0441\u0438\u0432\u044b<\/strong><\/p>\n<p>  <\/p>\n<p>\u041a\u043e\u0440\u0442\u0435\u0436\u0438 (tuples) \u0438 \u043c\u0430\u0441\u0441\u0438\u0432\u044b (arrays) \u2014 \u043f\u0435\u0440\u0432\u044b\u0435 &#171;\u0441\u043e\u0441\u0442\u0430\u0432\u043d\u044b\u0435&#187; (compound) \u0442\u0438\u043f\u044b, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043c\u044b \u0438\u0437\u0443\u0447\u0438\u043c. \u0412\u0441\u0435 \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u044b \u043c\u0430\u0441\u0441\u0438\u0432\u0430 \u0434\u043e\u043b\u0436\u043d\u044b \u0431\u044b\u0442\u044c \u043e\u0434\u043d\u043e\u0433\u043e \u0442\u0438\u043f\u0430, \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u044b \u043a\u043e\u0440\u0442\u0435\u0436\u0430 \u043c\u043e\u0433\u0443\u0442 \u0431\u044b\u0442\u044c \u0440\u0430\u0437\u043d\u044b\u0445 \u0442\u0438\u043f\u043e\u0432. \u0418 \u043c\u0430\u0441\u0441\u0438\u0432\u044b, \u0438 \u043a\u043e\u0440\u0442\u0435\u0436\u0438 \u0438\u043c\u0435\u044e\u0442 \u0444\u0438\u043a\u0441\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0439 \u0440\u0430\u0437\u043c\u0435\u0440.<\/p>\n<p>  <\/p>\n<div class=\"scrollable-table\">\n<table>\n<thead>\n<tr>\n<th>\u0422\u0438\u043f\u044b<\/th>\n<th>\u041b\u0438\u0442\u0435\u0440\u0430\u043b\u044b<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td>\u041c\u0430\u0441\u0441\u0438\u0432\u044b<\/td>\n<td>[T; N]<\/td>\n<td>[20, 30, 40], [0; 3]<\/td>\n<\/tr>\n<tr>\n<td>\u041a\u043e\u0440\u0442\u0435\u0436\u0438<\/td>\n<td>(), (T,), (T1, T2)<\/td>\n<td>(), (&#8216;x&#8217;,), (&#8216;x&#8217;, 1.2)<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<p>  <\/p>\n<p>\u041e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u0438\u0435 \u043c\u0430\u0441\u0441\u0438\u0432\u0430 \u0438 \u0434\u043e\u0441\u0442\u0443\u043f \u043a \u0435\u0433\u043e \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u0430\u043c:<\/p>\n<p>  <\/p>\n<pre><code class=\"rust\">fn main() {     let mut a: [i8; 10] = [42; 10];     a[5] = 0;     println!(\"a: {a:?}\"); }<\/code><\/pre>\n<p>  <\/p>\n<p>\u041e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u0438\u0435 \u043a\u043e\u0440\u0442\u0435\u0436\u0430 \u0438 \u0434\u043e\u0441\u0442\u0443\u043f \u043a \u0435\u0433\u043e \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u0430\u043c:<\/p>\n<p>  <\/p>\n<pre><code class=\"rust\">fn main() {     let t: (i8, bool) = (7, true);     println!(\"t.0: {}\", t.0);     println!(\"t.1: {}\", t.1); }<\/code><\/pre>\n<p>  <\/p>\n<p>\u041c\u0430\u0441\u0441\u0438\u0432\u044b:<\/p>\n<p>  <\/p>\n<ul>\n<li>\u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435\u043c \u043c\u0430\u0441\u0441\u0438\u0432\u0430 \u0442\u0438\u043f\u0430 <code>[T; N]<\/code> \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f <code>N<\/code> (\u043a\u043e\u043d\u0441\u0442\u0430\u043d\u0442\u0430 \u0432\u0440\u0435\u043c\u0435\u043d\u0438 \u043a\u043e\u043c\u043f\u0438\u043b\u044f\u0446\u0438\u0438) \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u043e\u0432 \u0442\u0438\u043f\u0430 <code>T<\/code>. \u041e\u0431\u0440\u0430\u0442\u0438\u0442\u0435 \u0432\u043d\u0438\u043c\u0430\u043d\u0438\u0435, \u0447\u0442\u043e \u0434\u043b\u0438\u043d\u0430 \u043c\u0430\u0441\u0441\u0438\u0432\u0430 \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u0447\u0430\u0441\u0442\u044c\u044e \u0435\u0433\u043e \u0442\u0438\u043f\u0430, \u043f\u043e\u044d\u0442\u043e\u043c\u0443 <code>[u8; 3]<\/code> \u0438 <code>[u8; 4]<\/code> \u0441\u0447\u0438\u0442\u0430\u044e\u0442\u0441\u044f \u0434\u0432\u0443\u043c\u044f \u0440\u0430\u0437\u043d\u044b\u043c\u0438 \u0442\u0438\u043f\u0430\u043c\u0438. \u0421\u0440\u0435\u0437\u044b (slices), \u0434\u043b\u0438\u043d\u0430 \u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u044f\u0435\u0442\u0441\u044f \u0432\u043e \u0432\u0440\u0435\u043c\u044f \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f, \u043c\u044b \u0440\u0430\u0441\u0441\u043c\u043e\u0442\u0440\u0438\u043c \u043f\u043e\u0437\u0436\u0435<\/li>\n<li>\u043f\u043e\u043f\u0440\u043e\u0431\u0443\u0439\u0442\u0435 \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c \u0434\u043e\u0441\u0442\u0443\u043f \u043a \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u0443 \u0437\u0430 \u043f\u0440\u0435\u0434\u0435\u043b\u0430\u043c\u0438 \u0433\u0440\u0430\u043d\u0438\u0446 \u043c\u0430\u0441\u0441\u0438\u0432\u0430. \u0414\u043e\u0441\u0442\u0443\u043f \u043a \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u0430\u043c \u043c\u0430\u0441\u0441\u0438\u0432\u0430 \u043f\u0440\u043e\u0432\u0435\u0440\u044f\u0435\u0442\u0441\u044f \u0432\u043e \u0432\u0440\u0435\u043c\u044f \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f. <code>Rust<\/code> \u043e\u0431\u044b\u0447\u043d\u043e \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u0435\u0442 \u0440\u0430\u0437\u043b\u0438\u0447\u043d\u044b\u0435 \u043e\u043f\u0442\u0438\u043c\u0438\u0437\u0430\u0446\u0438\u0438 \u0442\u0430\u043a\u043e\u0439 \u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0438, \u0430 \u0432 \u043d\u0435\u0431\u0435\u0437\u043e\u043f\u0430\u0441\u043d\u043e\u043c <code>Rust<\/code> \u0435\u0435 \u043c\u043e\u0436\u043d\u043e \u043e\u0442\u043a\u043b\u044e\u0447\u0438\u0442\u044c<\/li>\n<li>\u0434\u043b\u044f \u043f\u0440\u0438\u0441\u0432\u043e\u0435\u043d\u0438\u044f \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u043c\u0430\u0441\u0441\u0438\u0432\u0443 \u043c\u043e\u0436\u043d\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u043b\u0438\u0442\u0435\u0440\u0430\u043b\u044b<\/li>\n<li>\u043f\u043e\u0441\u043a\u043e\u043b\u044c\u043a\u0443 \u043c\u0430\u0441\u0441\u0438\u0432\u044b \u0438\u043c\u0435\u044e\u0442 \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044e \u0442\u043e\u043b\u044c\u043a\u043e \u043e\u0442\u043b\u0430\u0434\u043e\u0447\u043d\u043e\u0433\u043e \u0432\u044b\u0432\u043e\u0434\u0430, \u043e\u043d\u0438 \u0444\u043e\u0440\u043c\u0430\u0442\u0438\u0440\u0443\u044e\u0442\u0441\u044f \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e <code>{:?}<\/code> \u0438\u043b\u0438 <code>{:#?}<\/code><\/li>\n<\/ul>\n<p>  <\/p>\n<p>\u041a\u043e\u0440\u0442\u0435\u0436\u0438:<\/p>\n<p>  <\/p>\n<ul>\n<li>\u043a\u0430\u043a \u0438 \u043c\u0430\u0441\u0441\u0438\u0432\u044b, \u043a\u043e\u0440\u0442\u0435\u0436\u0438 \u0438\u043c\u0435\u044e\u0442 \u0444\u0438\u043a\u0441\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0439 \u0440\u0430\u0437\u043c\u0435\u0440<\/li>\n<li>\u043a\u043e\u0440\u0442\u0435\u0436\u0438 \u0433\u0440\u0443\u043f\u043f\u0438\u0440\u0443\u044e\u0442 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u0440\u0430\u0437\u043d\u044b\u0445 \u0442\u0438\u043f\u043e\u0432 \u0432 \u043e\u0434\u0438\u043d \u0441\u043e\u0441\u0442\u0430\u0432\u043d\u043e\u0439 \u0442\u0438\u043f<\/li>\n<li>\u0434\u043e\u0441\u0442\u0443\u043f \u043a \u043f\u043e\u043b\u044f\u043c \u043a\u043e\u0440\u0442\u0435\u0436\u0430 \u043c\u043e\u0436\u043d\u043e \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u0442\u043e\u0447\u043a\u0438 \u0438 \u0438\u043d\u0434\u0435\u043a\u0441\u0430, \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, <code>t.0<\/code>, <code>t.1<\/code><\/li>\n<li>\u043f\u0443\u0441\u0442\u043e\u0439 \u043a\u043e\u0440\u0442\u0435\u0436 <code>()<\/code> \u0442\u0430\u043a\u0436\u0435 \u043d\u0430\u0437\u044b\u0432\u0430\u0435\u0442\u0441\u044f &#171;\u0435\u0434\u0438\u043d\u0438\u0447\u043d\u044b\u043c\/\u043f\u0443\u0441\u0442\u044b\u043c \u0442\u0438\u043f\u043e\u043c&#187; (unit type). \u042d\u0442\u043e \u0438 \u0442\u0438\u043f, \u0438 \u0435\u0433\u043e \u0435\u0434\u0438\u043d\u0441\u0442\u0432\u0435\u043d\u043d\u043e\u0435 \u0432\u0430\u043b\u0438\u0434\u043d\u043e\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435. \u041f\u0443\u0441\u0442\u043e\u0439 \u0442\u0438\u043f \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u0438\u043d\u0434\u0438\u043a\u0430\u0442\u043e\u0440\u043e\u043c \u0442\u043e\u0433\u043e, \u0447\u0442\u043e \u0444\u0443\u043d\u043a\u0446\u0438\u044f \u0438\u043b\u0438 \u0432\u044b\u0440\u0430\u0436\u0435\u043d\u0438\u0435 \u043d\u0438\u0447\u0435\u0433\u043e \u043d\u0435 \u0432\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u044e\u0442 (\u0432 \u044d\u0442\u043e\u043c \u0441\u043c\u044b\u0441\u043b\u0435 \u043f\u0443\u0441\u0442\u043e\u0439 \u0442\u0438\u043f \u043f\u043e\u0445\u043e\u0436 \u043d\u0430 <code>void<\/code> \u0432 \u0434\u0440\u0443\u0433\u0438\u0445 \u044f\u0437\u044b\u043a\u0430\u0445)<\/li>\n<\/ul>\n<p>  <\/p>\n<p><strong>\u041f\u0435\u0440\u0435\u0431\u043e\u0440 \u043c\u0430\u0441\u0441\u0438\u0432\u0430<\/strong><\/p>\n<p>  <\/p>\n<p>\u0414\u043b\u044f \u043f\u0435\u0440\u0435\u0431\u043e\u0440\u0430 \u043c\u0430\u0441\u0441\u0438\u0432\u0430 (\u043d\u043e \u043d\u0435 \u043a\u043e\u0440\u0442\u0435\u0436\u0430) \u043c\u043e\u0436\u0435\u0442 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c\u0441\u044f \u0446\u0438\u043a\u043b <code>for<\/code>:<\/p>\n<p>  <\/p>\n<pre><code class=\"rust\">fn main() {     let primes = [2, 3, 5, 7, 11, 13, 17, 19];     for prime in primes {         for i in 2..prime {             assert_ne!(prime % i, 0);         }     } }<\/code><\/pre>\n<p>  <\/p>\n<p>\u0412\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u044c \u043f\u0435\u0440\u0435\u0431\u043e\u0440\u0430 \u043c\u0430\u0441\u0441\u0438\u0432\u0430 \u0432 \u0446\u0438\u043a\u043b\u0435 <code>for<\/code> \u043e\u0431\u0435\u0441\u043f\u0435\u0447\u0438\u0432\u0430\u0435\u0442\u0441\u044f \u0442\u0440\u0435\u0439\u0442\u043e\u043c <code>IntoIterator<\/code>, \u043e \u043a\u043e\u0442\u043e\u0440\u043e\u043c \u043c\u044b \u043f\u043e\u0433\u043e\u0432\u043e\u0440\u0438\u043c \u043f\u043e\u0437\u0436\u0435.<\/p>\n<p>  <\/p>\n<p>\u0412 \u043f\u0440\u0438\u043c\u0435\u0440\u0435 \u043c\u044b \u0432\u0438\u0434\u0438\u043c \u043d\u043e\u0432\u044b\u0439 \u043c\u0430\u043a\u0440\u043e\u0441 <code>assert_ne!<\/code>. \u0421\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u044e\u0442 \u0442\u0430\u043a\u0436\u0435 \u043c\u0430\u043a\u0440\u043e\u0441\u044b <code>assert_eq!<\/code> \u0438 <code>assert!<\/code>. \u042d\u0442\u0438 \u043c\u0430\u043a\u0440\u043e\u0441\u044b \u043f\u0440\u043e\u0432\u0435\u0440\u044f\u044e\u0442\u0441\u044f \u0432\u0441\u0435\u0433\u0434\u0430, \u0432 \u043e\u0442\u043b\u0438\u0447\u0438\u0435 \u043e\u0442 \u0438\u0445 \u0430\u043d\u0430\u043b\u043e\u0433\u043e\u0432 \u0434\u043b\u044f \u043e\u0442\u043b\u0430\u0434\u043a\u0438 <code>debug_assert!<\/code> \u0438 \u0434\u0440., \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0443\u0434\u0430\u043b\u044f\u044e\u0442\u0441\u044f \u0438\u0437 \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0441\u0442\u0432\u0435\u043d\u043d\u043e\u0439 \u0441\u0431\u043e\u0440\u043a\u0438.<\/p>\n<p>  <\/p>\n<p><strong>\u0421\u043e\u043f\u043e\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u0438\u0435 \u0441 \u043e\u0431\u0440\u0430\u0437\u0446\u043e\u043c<\/strong><\/p>\n<p>  <\/p>\n<p>\u041a\u043b\u044e\u0447\u0435\u0432\u043e\u0435 \u0441\u043b\u043e\u0432\u043e <code>match<\/code> \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u0441\u043e\u043f\u043e\u0441\u0442\u0430\u0432\u043b\u044f\u0442\u044c \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u0441 \u043e\u0434\u043d\u0438\u043c \u0438\u043b\u0438 \u0431\u043e\u043b\u0435\u0435 \u043f\u0430\u0442\u0442\u0435\u0440\u043d\u0430\u043c\u0438\/\u0448\u0430\u0431\u043b\u043e\u043d\u0430\u043c\u0438. \u0421\u0440\u0430\u0432\u043d\u0435\u043d\u0438\u0435 \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u0435\u0442\u0441\u044f \u0441\u0432\u0435\u0440\u0445\u0443 \u0432\u043d\u0438\u0437, \u043f\u043e\u0431\u0435\u0436\u0434\u0430\u0435\u0442 \u043f\u0435\u0440\u0432\u043e\u0435 \u0441\u043e\u0432\u043f\u0430\u0434\u0435\u043d\u0438\u0435.<\/p>\n<p>  <\/p>\n<p><code>match<\/code> \u043f\u043e\u0445\u043e\u0436 \u043d\u0430 <code>switch<\/code> \u0438\u0437 \u0434\u0440\u0443\u0433\u0438\u0445 \u044f\u0437\u044b\u043a\u043e\u0432:<\/p>\n<p>  <\/p>\n<pre><code class=\"rust\">#[rustfmt::skip] fn main() {     let input = 'x';     match input {         'q'                       => println!(\"\u0432\u044b\u0445\u043e\u0434\"),         'a' | 's' | 'w' | 'd'     => println!(\"\u0434\u0432\u0438\u0436\u0435\u043d\u0438\u0435\"),         '0'..='9'                 => println!(\"\u0447\u0438\u0441\u043b\u043e\"),         key if key.is_lowercase() => println!(\"\u0431\u0443\u043a\u0432\u0430 \u0432 \u043d\u0438\u0436\u043d\u0435\u043c \u0440\u0435\u0433\u0438\u0441\u0442\u0440\u0435: {key}\"),         _                         => println!(\"\u0434\u0440\u0443\u0433\u043e\u0435\"),     } }<\/code><\/pre>\n<p>  <\/p>\n<p>\u041f\u0430\u0442\u0442\u0435\u0440\u043d <code>_<\/code> \u2014 \u044d\u0442\u043e \u0448\u0430\u0431\u043b\u043e\u043d \u043f\u043e\u0434\u0441\u0442\u0430\u043d\u043e\u0432\u043e\u0447\u043d\u043e\u0433\u043e \u0437\u043d\u0430\u043a\u0430 (wildcard pattern), \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u0435\u0442 \u043b\u044e\u0431\u043e\u043c\u0443 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044e. \u0421\u043e\u043f\u043e\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u0438\u044f \u0434\u043e\u043b\u0436\u043d\u044b \u0431\u044b\u0442\u044c \u0438\u0441\u0447\u0435\u0440\u043f\u044b\u0432\u0430\u044e\u0449\u0438\u043c\u0438, \u0442.\u0435. \u043e\u0445\u0432\u0430\u0442\u044b\u0432\u0430\u0442\u044c \u0432\u0441\u0435 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u044b\u0435 \u0441\u043b\u0443\u0447\u0430\u0438, \u043f\u043e\u044d\u0442\u043e\u043c\u0443 <code>_<\/code> \u0447\u0430\u0441\u0442\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f \u043a\u0430\u043a \u0444\u0438\u043d\u0430\u043b\u044c\u043d\u044b\u0439 \u043f\u0435\u0440\u0435\u0445\u0432\u0430\u0442\u0447\u0438\u043a.<\/p>\n<p>  <\/p>\n<p>\u0421\u043e\u043f\u043e\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u0438\u0435 \u043c\u043e\u0436\u0435\u0442 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c\u0441\u044f \u043a\u0430\u043a \u0432\u044b\u0440\u0430\u0436\u0435\u043d\u0438\u0435. \u041a\u0430\u043a \u0438 \u0432 \u0441\u043b\u0443\u0447\u0430\u0435 \u0441 <code>if<\/code>, \u0431\u043b\u043e\u043a\u0438 <code>match<\/code> \u0434\u043e\u043b\u0436\u043d\u044b \u0438\u043c\u0435\u0442\u044c \u043e\u0434\u0438\u043d\u0430\u043a\u043e\u0432\u044b\u0439 \u0442\u0438\u043f. \u0422\u0438\u043f\u043e\u043c \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u0435\u0435 \u0432\u044b\u0440\u0430\u0436\u0435\u043d\u0438\u0435 \u0432 \u0431\u043b\u043e\u043a\u0435, \u0435\u0441\u043b\u0438 \u0442\u0430\u043a\u043e\u0432\u043e\u0435 \u0438\u043c\u0435\u0435\u0442\u0441\u044f. \u0412 \u043f\u0440\u0438\u043c\u0435\u0440\u0435 \u0442\u0438\u043f\u043e\u043c \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f <code>()<\/code>.<\/p>\n<p>  <\/p>\n<p>\u041f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u0430\u044f \u0432 \u043f\u0430\u0442\u0442\u0435\u0440\u043d\u0435 (<code>key<\/code> \u0432 \u043f\u0440\u0438\u043c\u0435\u0440\u0435) \u0441\u043e\u0437\u0434\u0430\u0435\u0442 \u043f\u0440\u0438\u0432\u044f\u0437\u043a\u0443, \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u043c\u043e\u0436\u0435\u0442 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c\u0441\u044f \u0432 \u0431\u043b\u043e\u043a\u0435.<\/p>\n<p>  <\/p>\n<p>\u0417\u0430\u0449\u0438\u0442\u043d\u0438\u043a \u0441\u043e\u043f\u043e\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u0438\u044f (match guard \u2014 <code>if ...<\/code>) \u0434\u043e\u043f\u0443\u0441\u043a\u0430\u0435\u0442 \u0441\u043e\u0432\u043f\u0430\u0434\u0435\u043d\u0438\u0435 \u0442\u043e\u043b\u044c\u043a\u043e \u043f\u0440\u0438 \u0443\u0434\u043e\u0432\u043b\u0435\u0442\u0432\u043e\u0440\u0435\u043d\u0438\u0438 \u0443\u0441\u043b\u043e\u0432\u0438\u044f.<\/p>\n<p>  <\/p>\n<p>\u0420\u0435\u043c\u0430\u0440\u043a\u0438:<\/p>\n<p>  <\/p>\n<ul>\n<li>\u0432\u044b \u043c\u043e\u0433\u043b\u0438 \u0437\u0430\u043c\u0435\u0442\u0438\u0442\u044c \u043d\u0435\u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0441\u043f\u0435\u0446\u0438\u0430\u043b\u044c\u043d\u044b\u0435 \u0441\u0438\u043c\u0432\u043e\u043b\u044b, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044e\u0442\u0441\u044f \u0432 \u0448\u0430\u0431\u043b\u043e\u043d\u0430\u0445:<br \/> \n<ul>\n<li><code>|<\/code> \u2014 \u044d\u0442\u043e <code>or<\/code> (\u0438\u043b\u0438)<\/li>\n<li><code>..<\/code> \u2014 \u0440\u0430\u0441\u043f\u0430\u043a\u043e\u0432\u043a\u0430 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f<\/li>\n<li><code>1..=5<\/code> \u2014 \u0432\u043a\u043b\u044e\u0447\u0430\u044e\u0449\u0438\u0439 \u0434\u0438\u0430\u043f\u0430\u0437\u043e\u043d<\/li>\n<li><code>_<\/code> \u2014 \u043f\u043e\u0434\u0441\u0442\u0430\u043d\u043e\u0432\u043e\u0447\u043d\u044b\u0439 \u0437\u043d\u0430\u043a<\/li>\n<\/ul>\n<\/li>\n<li>\u0437\u0430\u0449\u0438\u0442\u0430 \u0441\u043e\u043f\u043e\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u0438\u044f \u0432\u0430\u0436\u043d\u0430 \u0438 \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u0430, \u043a\u043e\u0433\u0434\u0430 \u043c\u044b \u0445\u043e\u0442\u0438\u043c \u043a\u0440\u0430\u0442\u043a\u043e \u0432\u044b\u0440\u0430\u0437\u0438\u0442\u044c \u0431\u043e\u043b\u0435\u0435 \u0441\u043b\u043e\u0436\u043d\u044b\u0435 \u0438\u0434\u0435\u0438, \u0447\u0435\u043c \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u044e\u0442 \u043e\u0434\u043d\u0438 \u0442\u043e\u043b\u044c\u043a\u043e \u0448\u0430\u0431\u043b\u043e\u043d\u044b<\/li>\n<li>\u0437\u0430\u0449\u0438\u0442\u0430 \u0441\u043e\u043f\u043e\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u0438\u0435 \u0438 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435 <code>if<\/code> \u0432\u043d\u0443\u0442\u0440\u0438 \u0431\u043b\u043e\u043a\u0430 <code>match<\/code> \u2014 \u0440\u0430\u0437\u043d\u044b\u0435 \u0432\u0435\u0449\u0438<\/li>\n<li>\u0443\u0441\u043b\u043e\u0432\u0438\u0435, \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u043d\u043e\u0435 \u0432 \u0437\u0430\u0449\u0438\u0442\u043d\u0438\u043a\u0435 \u0441\u043e\u043f\u043e\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u0438\u044f, \u043f\u0440\u0438\u043c\u0435\u043d\u044f\u0435\u0442\u0441\u044f \u043a\u043e \u0432\u0441\u0435\u043c \u0432\u044b\u0440\u0430\u0436\u0435\u043d\u0438\u044f\u043c \u043f\u0430\u0442\u0442\u0435\u0440\u043d\u0430, \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u043d\u043e\u0433\u043e \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e <code>|<\/code><\/li>\n<\/ul>\n<p>  <\/p>\n<p><strong>\u0414\u0435\u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0438\u0437\u0430\u0446\u0438\u044f<\/strong><\/p>\n<p>  <\/p>\n<p>\u0414\u0435\u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0438\u0437\u0430\u0446\u0438\u044f \u2014 \u044d\u0442\u043e \u0441\u043f\u043e\u0441\u043e\u0431 \u0438\u0437\u0432\u043b\u0435\u0447\u0435\u043d\u0438\u044f \u0434\u0430\u043d\u043d\u044b\u0445 \u0438\u0437 \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u044b \u0434\u0430\u043d\u043d\u044b\u0445 \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u0448\u0430\u0431\u043b\u043e\u043d\u0430, \u0441\u043e\u0432\u043f\u0430\u0434\u0430\u044e\u0449\u0435\u0433\u043e \u0441\u043e \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u043e\u0439 \u0434\u0430\u043d\u043d\u044b\u0445. \u042d\u0442\u043e \u0441\u043f\u043e\u0441\u043e\u0431 \u043f\u0440\u0438\u0432\u044f\u0437\u043a\u0438 \u043a \u0441\u0443\u0431\u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u0430\u043c (subcomponents) \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u044b \u0434\u0430\u043d\u043d\u044b\u0445.<\/p>\n<p>  <\/p>\n<p><em>\u041a\u043e\u0440\u0442\u0435\u0436\u0438<\/em><\/p>\n<p>  <\/p>\n<pre><code class=\"rust\">fn main() {     describe_point((1, 0)); }  fn describe_point(point: (i32, i32)) {     match point {         (0, _) => println!(\"\u043d\u0430 \u043e\u0441\u0438 Y\"),         (_, 0) => println!(\"\u043d\u0430 \u043e\u0441\u0438 X\"),         (x, _) if x &lt; 0 => println!(\"\u0441\u043b\u0435\u0432\u0430 \u043e\u0442 \u043e\u0441\u0438 Y\"),         (_, y) if y &lt; 0 => println!(\"\u043d\u0438\u0436\u0435 \u043e\u0441\u0438 X\"),         _ => println!(\"\u043f\u0435\u0440\u0432\u044b\u0439 \u043a\u0432\u0430\u0434\u0440\u0430\u043d\u0442\"),     } }<\/code><\/pre>\n<p>  <\/p>\n<p><em>\u041c\u0430\u0441\u0441\u0438\u0432\u044b<\/em><\/p>\n<p>  <\/p>\n<pre><code class=\"rust\">#[rustfmt::skip] fn main() {     let triple = [0, -2, 3];     println!(\"\u0440\u0430\u0441\u0441\u043a\u0430\u0436\u0438 \u043c\u043d\u0435 \u043e {triple:?}\");     match triple {         [0, y, z] => println!(\"\u043f\u0435\u0440\u0432\u044b\u0439 \u044d\u043b\u0435\u043c\u0435\u043d\u0442 - \u044d\u0442\u043e 0, y = {y} \u0438 z = {z}\"),         [1, ..]   => println!(\"\u043f\u0435\u0440\u0432\u044b\u0439 \u044d\u043b\u0435\u043c\u0435\u043d\u0442 - \u044d\u0442\u043e 1, \u043e\u0441\u0442\u0430\u043b\u044c\u043d\u044b\u0435 \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u044b \u0438\u0433\u043d\u043e\u0440\u0438\u0440\u0443\u044e\u0442\u0441\u044f\"),         _         => println!(\"\u0432\u0441\u0435 \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u044b \u0438\u0433\u043d\u043e\u0440\u0438\u0440\u0443\u044e\u0442\u0441\u044f\"),     } }<\/code><\/pre>\n<p>  <\/p>\n<ul>\n<li>\u0421\u043e\u0437\u0434\u0430\u0439\u0442\u0435 \u043d\u043e\u0432\u044b\u0439 \u0448\u0430\u0431\u043b\u043e\u043d \u043c\u0430\u0441\u0441\u0438\u0432\u0430, \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044f <code>_<\/code> \u0434\u043b\u044f \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u0438\u044f \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u0430<\/li>\n<li>\u0434\u043e\u0431\u0430\u0432\u044c\u0442\u0435 \u0432 \u043c\u0430\u0441\u0441\u0438\u0432 \u0431\u043e\u043b\u044c\u0448\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0439<\/li>\n<li>\u043e\u0431\u0440\u0430\u0442\u0438\u0442\u0435 \u0432\u043d\u0438\u043c\u0430\u043d\u0438\u0435, \u043a\u0430\u043a <code>..<\/code> \u0440\u0430\u0441\u0448\u0438\u0440\u044f\u0435\u0442\u0441\u044f (expand) \u0434\u043e \u0440\u0430\u0437\u043d\u043e\u0433\u043e \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u0430 \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u043e\u0432<\/li>\n<li>\u043f\u043e\u043a\u0430\u0436\u0438\u0442\u0435 \u0441\u043e\u043f\u043e\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u0438\u0435 \u0441 \u0445\u0432\u043e\u0441\u0442\u043e\u043c (tail) \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u0448\u0430\u0431\u043b\u043e\u043d\u043e\u0432 <code>[.., b]<\/code> \u0438 <code>[a@.., b]<\/code><\/li>\n<\/ul>\n<p>  <\/p>\n<p><strong>\u0423\u043f\u0440\u0430\u0436\u043d\u0435\u043d\u0438\u0435: \u0432\u043b\u043e\u0436\u0435\u043d\u043d\u044b\u0435 \u043c\u0430\u0441\u0441\u0438\u0432\u044b<\/strong><\/p>\n<p>  <\/p>\n<p>\u041c\u0430\u0441\u0441\u0438\u0432\u044b \u043c\u043e\u0433\u0443\u0442 \u0441\u043e\u0434\u0435\u0440\u0436\u0430\u0442\u044c \u0434\u0440\u0443\u0433\u0438\u0435 \u043c\u0430\u0441\u0441\u0438\u0432\u044b:<\/p>\n<p>  <\/p>\n<pre><code class=\"rust\">let matrix3x3 = [[1, 2, 3], [4, 5, 6], [7, 8, 9]];<\/code><\/pre>\n<p>  <\/p>\n<p>\u041a\u0430\u043a\u043e\u0432 \u0442\u0438\u043f \u044d\u0442\u043e\u0439 \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u043e\u0439?<\/p>\n<p>  <\/p>\n<p>\u041d\u0430\u043f\u0438\u0448\u0438\u0442\u0435 \u0444\u0443\u043d\u043a\u0446\u0438\u044e <code>transpose()<\/code>, \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u0442\u0440\u0430\u043d\u0441\u043f\u043e\u043d\u0438\u0440\u0443\u0435\u0442 \u043c\u0430\u0442\u0440\u0438\u0446\u0443 3\u04453 (\u043f\u0440\u0435\u0432\u0440\u0430\u0449\u0430\u0435\u0442 \u0441\u0442\u0440\u043e\u043a\u0438 \u0432 \u043a\u043e\u043b\u043e\u043d\u043a\u0438).<\/p>\n<p>  <\/p>\n<pre><code class=\"rust\">fn transpose(matrix: [[i32; 3]; 3]) -> [[i32; 3]; 3] {     todo!(\"\u0440\u0435\u0430\u043b\u0438\u0437\u0443\u0439 \u043c\u0435\u043d\u044f\") }  fn main() {     let matrix = [         [101, 102, 103], \/\/ &lt;-- \u043a\u043e\u043c\u043c\u0435\u043d\u0442\u0430\u0440\u0438\u0439 \u043d\u0435 \u0434\u0430\u0435\u0442 `rustfmt` \u0444\u043e\u0440\u043c\u0430\u0442\u0438\u0440\u043e\u0432\u0430\u0442\u044c `matrix` \u0432 \u043e\u0434\u043d\u0443 \u0441\u0442\u0440\u043e\u043a\u0443         [201, 202, 203],         [301, 302, 303],     ];     let transposed = transpose(matrix);     println!(\"\u0442\u0440\u0430\u043d\u0441\u043f\u043e\u043d\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u0430\u044f \u043c\u0430\u0442\u0440\u0438\u0446\u0430: {:#?}\", transposed);     assert_eq!(         transposed,         [             [101, 201, 301], \/\/             [102, 202, 302],             [103, 203, 303],         ]     ); }<\/code><\/pre>\n<p>  <\/p>\n<div class=\"spoiler\" role=\"button\" tabindex=\"0\">                         <b class=\"spoiler_title\">\u0420\u0435\u0448\u0435\u043d\u0438\u0435<\/b>                         <\/p>\n<div class=\"spoiler_text\">\n<pre><code class=\"rust\">fn transpose(matrix: [[i32; 3]; 3]) -> [[i32; 3]; 3] {     let mut result = [[0; 3]; 3];     for i in 0..3 {         for j in 0..3 {             result[j][i] = matrix[i][j];         }     }     result }<\/code><\/pre>\n<\/div><\/div>\n<p>  <\/p>\n<h2 id=\"ssylki\">\u0421\u0441\u044b\u043b\u043a\u0438<\/h2>\n<p>  <\/p>\n<p><strong>\u041e\u0431\u0449\u0438\u0435 \u0441\u0441\u044b\u043b\u043a\u0438<\/strong><\/p>\n<p>  <\/p>\n<p>\u0421\u0441\u044b\u043b\u043a\u0430 (reference) \u2014 \u044d\u0442\u043e \u0441\u043f\u043e\u0441\u043e\u0431 \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c \u0434\u043e\u0441\u0442\u0443\u043f \u043a \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044e \u0431\u0435\u0437 \u043f\u0440\u0438\u043d\u044f\u0442\u0438\u044f \u0435\u0433\u043e \u0432\u043e \u0432\u043b\u0430\u0434\u0435\u043d\u0438\u0435, \u0442.\u0435. \u0431\u0435\u0437 \u0437\u0430\u0438\u043c\u0441\u0442\u0432\u043e\u0432\u0430\u043d\u0438\u044f (borrowing) \u044d\u0442\u043e\u0433\u043e \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f. \u041e\u0431\u0449\u0438\u0435\/\u0440\u0430\u0441\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u043d\u044b\u0435 (shared) \u0441\u0441\u044b\u043b\u043a\u0438 \u0434\u043e\u0441\u0442\u0443\u043f\u043d\u044b \u0442\u043e\u043b\u044c\u043a\u043e \u0434\u043b\u044f \u0447\u0442\u0435\u043d\u0438\u044f: \u0441\u0441\u044b\u043b\u043e\u0447\u043d\u044b\u0435 \u0434\u0430\u043d\u043d\u044b\u0435 \u043d\u0435 \u043c\u043e\u0433\u0443\u0442 \u043c\u043e\u0434\u0438\u0444\u0438\u0446\u0438\u0440\u043e\u0432\u0430\u0442\u044c\u0441\u044f.<\/p>\n<p>  <\/p>\n<pre><code class=\"rust\">fn main() {     let a = 'A';     let b = 'B';     let mut r: &amp;char = &amp;a;     println!(\"r: {}\", *r);     r = &amp;b;     println!(\"r: {}\", *r); }<\/code><\/pre>\n<p>  <\/p>\n<p>\u041e\u0431\u0449\u0430\u044f \u0441\u0441\u044b\u043b\u043a\u0430 \u043d\u0430 \u0442\u0438\u043f <code>T<\/code> \u0438\u043c\u0435\u0435\u0442 \u0442\u0438\u043f <code>&amp;T<\/code>. \u041e\u043f\u0435\u0440\u0430\u0442\u043e\u0440 <code>&amp;<\/code> \u0443\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u0442 \u043d\u0430 \u0442\u043e, \u0447\u0442\u043e \u044d\u0442\u043e \u0441\u0441\u044b\u043b\u043a\u0430. \u041e\u043f\u0435\u0440\u0430\u0442\u043e\u0440 <code>*<\/code> \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f \u0434\u043b\u044f \u0440\u0430\u0437\u044b\u043c\u0435\u043d\u043e\u0432\u0430\u043d\u0438\u044f (dereferencing) \u0441\u0441\u044b\u043b\u043a\u0438 \u2014 \u043f\u043e\u043b\u0443\u0447\u0435\u043d\u0438\u044f \u0441\u0441\u044b\u043b\u043e\u0447\u043d\u043e\u0433\u043e \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f.<\/p>\n<p>  <\/p>\n<p><code>Rust<\/code> \u0437\u0430\u043f\u0440\u0435\u0449\u0430\u0435\u0442 \u0432\u0438\u0441\u044f\u0449\u0438\u0435 \u0441\u0441\u044b\u043b\u043a\u0438 (dangling references):<\/p>\n<p>  <\/p>\n<pre><code class=\"rust\">fn x_axis(x: i32) -> &amp;(i32, i32) {     let point = (x, 0);     return &amp;point; }<\/code><\/pre>\n<p>  <\/p>\n<p>\u0420\u0435\u043c\u0430\u0440\u043a\u0438:<\/p>\n<p>  <\/p>\n<ul>\n<li>\u0441\u0441\u044b\u043b\u043a\u0430 &#171;\u0437\u0430\u0438\u043c\u0441\u0442\u0432\u0443\u0435\u0442&#187; \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435, \u043d\u0430 \u043a\u043e\u0442\u043e\u0440\u043e\u0435 \u043e\u043d\u0430 \u0441\u0441\u044b\u043b\u0430\u0435\u0442\u0441\u044f. \u041a\u043e\u0434 \u043c\u043e\u0436\u0435\u0442 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0441\u0441\u044b\u043b\u043a\u0443 \u0434\u043b\u044f \u0434\u043e\u0441\u0442\u0443\u043f\u0430 \u043a \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044e, \u043d\u043e \u0435\u0433\u043e &#171;\u0432\u043b\u0430\u0434\u0435\u043b\u044c\u0446\u0435\u043c&#187; (owner) \u0431\u0443\u0434\u0435\u0442 \u043e\u0440\u0438\u0433\u0438\u043d\u0430\u043b\u044c\u043d\u0430\u044f \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u0430\u044f. \u041c\u044b \u043f\u043e\u0434\u0440\u043e\u0431\u043d\u043e \u043f\u043e\u0433\u043e\u0432\u043e\u0440\u0438\u043c \u043e \u0432\u043b\u0430\u0434\u0435\u043d\u0438\u0438 \u0432 3 \u0447\u0430\u0441\u0442\u0438<\/li>\n<li>\u0441\u0441\u044b\u043b\u043a\u0438 \u0440\u0435\u0430\u043b\u0438\u0437\u043e\u0432\u0430\u043d\u044b \u043a\u0430\u043a \u0443\u043a\u0430\u0437\u0430\u0442\u0435\u043b\u0438 (pointers) \u0432 <code>C<\/code> \u0438\u043b\u0438 <code>C++<\/code>, \u043a\u043b\u044e\u0447\u0435\u0432\u044b\u043c \u043f\u0440\u0435\u0438\u043c\u0443\u0449\u0435\u0441\u0442\u0432\u043e\u043c \u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u0442\u043e, \u0447\u0442\u043e \u043e\u043d\u0438 \u043c\u043e\u0433\u0443\u0442 \u0431\u044b\u0442\u044c \u043d\u0430\u043c\u043d\u043e\u0433\u043e \u043c\u0435\u043d\u044c\u0448\u0435, \u0447\u0435\u043c \u0432\u0435\u0449\u0438, \u043d\u0430 \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043e\u043d\u0438 \u0443\u043a\u0430\u0437\u044b\u0432\u0430\u044e\u0442. \u041f\u043e\u0437\u0436\u0435 \u043c\u044b \u0431\u0443\u0434\u0435\u043c \u0433\u043e\u0432\u043e\u0440\u0438\u0442\u044c \u043e \u0442\u043e\u043c, \u043a\u0430\u043a <code>Rust<\/code> \u043e\u0431\u0435\u0441\u043f\u0435\u0447\u0438\u0432\u0430\u0435\u0442 \u0431\u0435\u0437\u043e\u043f\u0430\u0441\u043d\u0443\u044e \u0440\u0430\u0431\u043e\u0442\u0443 \u0441 \u043f\u0430\u043c\u044f\u0442\u044c\u044e, \u043f\u0440\u0435\u0434\u043e\u0442\u0432\u0440\u0430\u0449\u0430\u044f \u0431\u0430\u0433\u0438, \u0441\u0432\u044f\u0437\u0430\u043d\u043d\u044b\u0435 \u0441 \u0441\u044b\u0440\u044b\u043c\u0438 (raw) \u0443\u043a\u0430\u0437\u0430\u0442\u0435\u043b\u044f\u043c\u0438<\/li>\n<li><code>Rust<\/code> \u043d\u0435 \u0441\u043e\u0437\u0434\u0430\u0435\u0442 \u0441\u0441\u044b\u043b\u043a\u0438 \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0438<\/li>\n<li>\u0432 \u043d\u0435\u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u0441\u043b\u0443\u0447\u0430\u044f\u0445 <code>Rust<\/code> \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u0435\u0442 \u0440\u0430\u0437\u044b\u043c\u0435\u043d\u043e\u0432\u0430\u043d\u0438\u0435 \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0438, \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u043f\u0440\u0438 \u0432\u044b\u0437\u043e\u0432\u0435 \u043c\u0435\u0442\u043e\u0434\u043e\u0432 (<code>r.count_ones()<\/code>)<\/li>\n<li>\u0432 \u043f\u0435\u0440\u0432\u043e\u043c \u043f\u0440\u0438\u043c\u0435\u0440\u0435 \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u0430\u044f <code>r<\/code> \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u043c\u0443\u0442\u0430\u0431\u0435\u043b\u044c\u043d\u043e\u0439, \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u0435\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u043c\u043e\u0436\u043d\u043e \u043c\u0435\u043d\u044f\u0442\u044c (<code>r = &amp;b<\/code>). \u042d\u0442\u043e \u043f\u043e\u0432\u0442\u043e\u0440\u043d\u043e \u043f\u0440\u0438\u0432\u044f\u0437\u044b\u0432\u0430\u0435\u0442 <code>r<\/code>, \u0442\u0435\u043f\u0435\u0440\u044c \u043e\u043d\u0430 \u0443\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u0442 \u043d\u0430 \u0447\u0442\u043e-\u0442\u043e \u0434\u0440\u0443\u0433\u043e\u0435. \u042d\u0442\u043e \u043e\u0442\u043b\u0438\u0447\u0430\u0435\u0442\u0441\u044f \u043e\u0442 <code>C++<\/code>, \u0433\u0434\u0435 \u043f\u0440\u0438\u0441\u0432\u043e\u0435\u043d\u0438\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u0441\u0441\u044b\u043b\u043a\u0435 \u043c\u0435\u043d\u044f\u0435\u0442 \u0441\u0441\u044b\u043b\u043e\u0447\u043d\u043e\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435<\/li>\n<li>\u043e\u0431\u0449\u0430\u044f \u0441\u0441\u044b\u043b\u043a\u0430 \u043d\u0435 \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u043c\u043e\u0434\u0438\u0444\u0438\u0446\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435, \u043d\u0430 \u043a\u043e\u0442\u043e\u0440\u043e\u0435 \u043e\u043d\u0430 \u0441\u0441\u044b\u043b\u0430\u0435\u0442\u0441\u044f, \u0434\u0430\u0436\u0435 \u0435\u0441\u043b\u0438 \u044d\u0442\u043e \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u043c\u0443\u0442\u0430\u0431\u0435\u043b\u044c\u043d\u044b\u043c (\u043f\u043e\u043f\u0440\u043e\u0431\u0443\u0439\u0442\u0435 <code>*r = 'X'<\/code>)<\/li>\n<li><code>Rust<\/code> \u043e\u0442\u0441\u043b\u0435\u0436\u0438\u0432\u0430\u0435\u0442 \u0432\u0440\u0435\u043c\u0435\u043d\u0430 \u0436\u0438\u0437\u043d\u0438 (lifetimes) \u0432\u0441\u0435\u0445 \u0441\u0441\u044b\u043b\u043e\u043a, \u0447\u0442\u043e\u0431\u044b \u0443\u0431\u0435\u0434\u0438\u0442\u044c\u0441\u044f, \u0447\u0442\u043e \u043e\u043d\u0438 \u0436\u0438\u0432\u0443\u0442 \u0434\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e \u0434\u043e\u043b\u0433\u043e. \u0412 \u0431\u0435\u0437\u043e\u043f\u0430\u0441\u043d\u043e\u043c <code>Rust<\/code> \u043d\u0435 \u043c\u043e\u0436\u0435\u0442 \u0431\u044b\u0442\u044c \u0432\u0438\u0441\u044f\u0449\u0438\u0445 \u0441\u0441\u044b\u043b\u043e\u043a (dangling pointers). <code>x_axis()<\/code> \u0432\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u0442 \u0441\u0441\u044b\u043b\u043a\u0443 \u043d\u0430 <code>point<\/code>, \u043d\u043e <code>point<\/code> \u0443\u043d\u0438\u0447\u0442\u043e\u0436\u0430\u0435\u0442\u0441\u044f (\u0432\u044b\u0434\u0435\u043b\u0435\u043d\u043d\u0430\u044f \u043f\u0430\u043c\u044f\u0442\u044c \u043e\u0441\u0432\u043e\u0431\u043e\u0436\u0434\u0430\u0435\u0442\u0441\u044f \u2014 deallocate) \u043f\u043e\u0441\u043b\u0435 \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f \u043a\u043e\u0434\u0430 \u0444\u0443\u043d\u043a\u0446\u0438\u0438, \u0438 \u043a\u043e\u0434 \u043d\u0435 \u043a\u043e\u043c\u043f\u0438\u043b\u0438\u0440\u0443\u0435\u0442\u0441\u044f<\/li>\n<\/ul>\n<p>  <\/p>\n<p><strong>\u042d\u043a\u0441\u043a\u043b\u044e\u0437\u0438\u0432\u043d\u044b\u0435 \u0441\u0441\u044b\u043b\u043a\u0438<\/strong><\/p>\n<p>  <\/p>\n<p>\u042d\u043a\u0441\u043a\u043b\u044e\u0437\u0438\u0432\u043d\u044b\u0435 \u0441\u0441\u044b\u043b\u043a\u0438 (exclusive references), \u0442\u0430\u043a\u0436\u0435 \u0438\u0437\u0432\u0435\u0441\u0442\u043d\u044b\u0435 \u043a\u0430\u043a \u043c\u0443\u0442\u0430\u0431\u0435\u043b\u044c\u043d\u044b\u0435 \u0441\u0441\u044b\u043b\u043a\u0438 (mutable references), \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u044e\u0442 \u043c\u0435\u043d\u044f\u0442\u044c \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435, \u043d\u0430 \u043a\u043e\u0442\u043e\u0440\u043e\u0435 \u043e\u043d\u0438 \u0441\u0441\u044b\u043b\u0430\u044e\u0442\u0441\u044f. \u041e\u043d\u0438 \u0438\u043c\u0435\u044e\u0442 \u0442\u0438\u043f <code>&amp;mut T<\/code>:<\/p>\n<p>  <\/p>\n<pre><code class=\"rust\">fn main() {     let mut point = (1, 2);     let x_coord = &amp;mut point.0;     *x_coord = 20;     println!(\"point: {point:?}\"); }<\/code><\/pre>\n<p>  <\/p>\n<p>\u0420\u0435\u043c\u0430\u0440\u043a\u0438:<\/p>\n<p>  <\/p>\n<ul>\n<li>&#171;\u044d\u043a\u0441\u043a\u043b\u044e\u0437\u0438\u0432\u043d\u044b\u0439&#187; \u043e\u0437\u043d\u0430\u0447\u0430\u0435\u0442, \u0447\u0442\u043e \u0442\u043e\u043b\u044c\u043a\u043e \u044d\u0442\u0430 \u0441\u0441\u044b\u043b\u043a\u0430 \u043c\u043e\u0436\u0435\u0442 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c\u0441\u044f \u0434\u043b\u044f \u0434\u043e\u0441\u0442\u0443\u043f\u0430 \u043a \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044e. \u0414\u0440\u0443\u0433\u0438\u0445 \u0441\u0441\u044b\u043b\u043e\u043a (\u043e\u0431\u0449\u0438\u0445 \u0438\u043b\u0438 \u044d\u043a\u0441\u043a\u043b\u044e\u0437\u0438\u0432\u043d\u044b\u0445) \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u043e\u0432\u0430\u0442\u044c \u043d\u0435 \u0434\u043e\u043b\u0436\u043d\u043e. \u0421\u0441\u044b\u043b\u043e\u0447\u043d\u043e\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u043d\u0435\u0434\u043e\u0441\u0442\u0443\u043f\u043d\u043e, \u043f\u043e\u043a\u0430 \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u0435\u0442 \u044d\u043a\u0441\u043a\u043b\u044e\u0437\u0438\u0432\u043d\u0430\u044f \u0441\u0441\u044b\u043b\u043a\u0430. \u041f\u043e\u043f\u0440\u043e\u0431\u0443\u0439\u0442\u0435 \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c \u0434\u043e\u0441\u0442\u0443\u043f \u043a <code>&amp;point.0<\/code> \u0438\u043b\u0438 \u0438\u0437\u043c\u0435\u043d\u0438\u0442\u044c <code>point.0<\/code>, \u043f\u043e\u043a\u0430 \u0436\u0438\u0432\u0430 <code>x_coord<\/code><\/li>\n<li>\u0443\u0431\u0435\u0434\u0438\u0442\u0435\u0441\u044c \u0432 \u0442\u043e\u043c, \u0447\u0442\u043e \u043f\u043e\u043d\u0438\u043c\u0430\u0435\u0442\u0435 \u0440\u0430\u0437\u043d\u0438\u0446\u0443 \u043c\u0435\u0436\u0434\u0443 <code>let mut x_coord: &amp;i32<\/code> \u0438 <code>let x_coord: &amp;mut i32<\/code>. \u041f\u0435\u0440\u0432\u0430\u044f \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u0430\u044f \u2014 \u044d\u0442\u043e \u043e\u0431\u0449\u0430\u044f \u0441\u0441\u044b\u043b\u043a\u0430, \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u043c\u043e\u0436\u0435\u0442 \u0431\u044b\u0442\u044c \u043f\u0440\u0438\u0432\u044f\u0437\u0430\u043d\u0430 \u043a \u0440\u0430\u0437\u043d\u044b\u043c \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f\u043c, \u0432\u0442\u043e\u0440\u0430\u044f \u2014 \u044d\u043a\u0441\u043a\u043b\u044e\u0437\u0438\u0432\u043d\u0430\u044f \u0441\u0441\u044b\u043b\u043a\u0430 \u043d\u0430 \u043c\u0443\u0442\u0430\u0431\u0435\u043b\u044c\u043d\u0443\u044e \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u0443\u044e<\/li>\n<\/ul>\n<p>  <\/p>\n<p><strong>\u0423\u043f\u0440\u0430\u0436\u043d\u0435\u043d\u0438\u0435: \u0433\u0435\u043e\u043c\u0435\u0442\u0440\u0438\u044f<\/strong><\/p>\n<p>  <\/p>\n<p>\u0412\u0430\u0448\u0430 \u0437\u0430\u0434\u0430\u0447\u0430 \u2014 \u0441\u043e\u0437\u0434\u0430\u0442\u044c \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u0432\u0441\u043f\u043e\u043c\u043e\u0433\u0430\u0442\u0435\u043b\u044c\u043d\u044b\u0445 \u0444\u0443\u043d\u043a\u0446\u0438\u0439 \u0434\u043b\u044f \u0442\u0440\u0435\u0445\u043c\u0435\u0440\u043d\u043e\u0439 \u0433\u0435\u043e\u043c\u0435\u0442\u0440\u0438\u0438, \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u044f\u044e\u0449\u0435\u0439 \u0442\u043e\u0447\u043a\u0443 \u043a\u0430\u043a <code>[f64; 3]<\/code>.<\/p>\n<p>  <\/p>\n<pre><code class=\"rust\">\/\/ \u0424\u0443\u043d\u043a\u0446\u0438\u044f \u0434\u043b\u044f \u0432\u044b\u0447\u0438\u0441\u043b\u0435\u043d\u0438\u044f \u043c\u0430\u0433\u043d\u0438\u0442\u0443\u0434\u044b \u0432\u0435\u043a\u0442\u043e\u0440\u0430: \u0441\u0443\u043c\u043c\u0438\u0440\u0443\u0435\u043c \u043a\u0432\u0430\u0434\u0440\u0430\u0442\u044b \u043a\u043e\u043e\u0440\u0434\u0438\u043d\u0430\u0442 \u0432\u0435\u043a\u0442\u043e\u0440\u0430 \/\/ \u0438 \u0438\u0437\u0432\u043b\u0435\u043a\u0430\u0435\u043c \u0438\u0437 \u044d\u0442\u043e\u0439 \u0441\u0443\u043c\u043c\u044b \u043a\u0432\u0430\u0434\u0440\u0430\u0442\u043d\u044b\u0439 \u043a\u043e\u0440\u0435\u043d\u044c. \/\/ \u041c\u0435\u0442\u043e\u0434 \u0434\u043b\u044f \u0438\u0437\u0432\u043b\u0435\u0447\u0435\u043d\u0438\u044f \u043a\u0432\u0430\u0434\u0440\u0430\u0442\u043d\u043e\u0433\u043e \u043a\u043e\u0440\u043d\u044f - `sqrt()` (`v.sqrt()`) fn magnitude(...) -> f64 {     todo!(\"\u0440\u0435\u0430\u043b\u0438\u0437\u0443\u0439 \u043c\u0435\u043d\u044f\") }  \/\/ \u0424\u0443\u043d\u043a\u0446\u0438\u044f \u043d\u043e\u0440\u043c\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438 \u0432\u0435\u043a\u0442\u043e\u0440\u0430: \u0432\u044b\u0447\u0438\u0441\u043b\u044f\u0435\u043c \u043c\u0430\u0433\u043d\u0438\u0442\u0443\u0434\u0443 \u0432\u0435\u043a\u0442\u043e\u0440\u0430 \/\/ \u0438 \u0434\u0435\u043b\u0438\u043c \u043d\u0430 \u043d\u0435\u0435 \u0432\u0441\u0435 \u043a\u043e\u043e\u0440\u0434\u0438\u043d\u0430\u0442\u044b \u0432\u0435\u043a\u0442\u043e\u0440\u0430 fn normalize(...) {     todo!(\"\u0440\u0435\u0430\u043b\u0438\u0437\u0443\u0439 \u043c\u0435\u043d\u044f\") }  fn main() {     println!(\"\u043c\u0430\u0433\u043d\u0438\u0442\u0443\u0434\u0430 \u0435\u0434\u0438\u043d\u0438\u0447\u043d\u043e\u0433\u043e \u0432\u0435\u043a\u0442\u043e\u0440\u0430: {}\", magnitude(&amp;[0.0, 1.0, 0.0]));      let mut v = [1.0, 2.0, 9.0];     println!(\"\u043c\u0430\u0433\u043d\u0438\u0442\u0443\u0434\u0430 {v:?}: {}\", magnitude(&amp;v));     normalize(&amp;mut v);     println!(\"\u043c\u0430\u0433\u043d\u0438\u0442\u0443\u0434\u0430 {v:?} \u043f\u043e\u0441\u043b\u0435 \u043d\u043e\u0440\u043c\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438: {}\", magnitude(&amp;v)); }<\/code><\/pre>\n<p>  <\/p>\n<div class=\"spoiler\" role=\"button\" tabindex=\"0\">                         <b class=\"spoiler_title\">\u0420\u0435\u0448\u0435\u043d\u0438\u0435<\/b>                         <\/p>\n<div class=\"spoiler_text\">\n<pre><code class=\"rust\">fn magnitude(vector: &amp;[f64; 3]) -> f64 {     let mut mag_squared = 0.0;     for coord in vector {         mag_squared += coord * coord;     }     mag_squared.sqrt() }  fn normalize(vector: &amp;mut [f64; 3]) {     let mag = magnitude(vector);     vector[0] \/= mag;     vector[1] \/= mag;     vector[2] \/= mag; }<\/code><\/pre>\n<\/div><\/div>\n<p>  <\/p>\n<h2 id=\"polzovatelskie-tipy\">\u041f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u0441\u043a\u0438\u0435 \u0442\u0438\u043f\u044b<\/h2>\n<p>  <\/p>\n<p><strong>\u0418\u043c\u0435\u043d\u043e\u0432\u0430\u043d\u043d\u044b\u0435 \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u044b<\/strong><\/p>\n<p>  <\/p>\n<p><code>Rust<\/code> \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u0435\u0442 \u043a\u0430\u0441\u0442\u043e\u043c\u043d\u044b\u0435 \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u044b:<\/p>\n<p>  <\/p>\n<pre><code class=\"rust\">struct Person {     name: String,     age: u8, }  fn describe(person: &amp;Person) {     println!(\"{} is {} years old\", person.name, person.age); }  fn main() {     let mut peter = Person { name: String::from(\"Peter\"), age: 27 };     describe(&amp;peter);      peter.age = 28;     describe(&amp;peter);      let name = String::from(\"Avery\");     let age = 39;     let avery = Person { name, age };     describe(&amp;avery);      let jackie = Person { name: String::from(\"Jackie\"), ..avery };     describe(&amp;jackie); }<\/code><\/pre>\n<p>  <\/p>\n<p>\u0420\u0435\u043c\u0430\u0440\u043a\u0438:<\/p>\n<p>  <\/p>\n<ul>\n<li>\u0442\u0438\u043f \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u044b \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u043e \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u044f\u0442\u044c \u043d\u0435 \u043d\u0443\u0436\u043d\u043e<\/li>\n<li>\u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u044b \u043d\u0435 \u043c\u043e\u0433\u0443\u0442 \u043d\u0430\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u0442\u044c \u0434\u0440\u0443\u0433 \u0434\u0440\u0443\u0433\u0443<\/li>\n<li>\u0434\u043b\u044f \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438 \u0442\u0440\u0435\u0439\u0442\u0430 \u043d\u0430 \u0442\u0438\u043f\u0435, \u0432 \u043a\u043e\u0442\u043e\u0440\u043e\u043c \u043d\u0435 \u043d\u0443\u0436\u043d\u043e \u0445\u0440\u0430\u043d\u0438\u0442\u044c \u043d\u0438\u043a\u0430\u043a\u0438\u0445 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0439, \u043c\u043e\u0436\u043d\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0443 \u043d\u0443\u043b\u0435\u0432\u043e\u0433\u043e \u0440\u0430\u0437\u043c\u0435\u0440\u0430 (zero-sized), \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, <code>struct Foo;<\/code><\/li>\n<li>\u0435\u0441\u043b\u0438 \u043d\u0430\u0437\u0432\u0430\u043d\u0438\u0435 \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u043e\u0439 \u0441\u043e\u0432\u043f\u0430\u0434\u0430\u0435\u0442 \u0441 \u043d\u0430\u0437\u0432\u0430\u043d\u0438\u0435\u043c \u043f\u043e\u043b\u044f, \u0442\u043e, \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, <code>name: name<\/code> \u043c\u043e\u0436\u043d\u043e \u0441\u043e\u043a\u0440\u0430\u0442\u0438\u0442\u044c \u0434\u043e <code>name<\/code><\/li>\n<li>\u0441\u0438\u043d\u0442\u0430\u043a\u0441\u0438\u0441 <code>..avery<\/code> \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u043a\u043e\u043f\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0431\u043e\u043b\u044c\u0448\u0443\u044e \u0447\u0430\u0441\u0442\u044c \u043f\u043e\u043b\u0435\u0439 \u0441\u0442\u0430\u0440\u043e\u0439 \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u044b \u0432 \u043d\u043e\u0432\u0443\u044e \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0443. \u041e\u043d \u0434\u043e\u043b\u0436\u0435\u043d \u0431\u044b\u0442\u044c \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u0438\u043c \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u043e\u043c<\/li>\n<\/ul>\n<p>  <\/p>\n<p><strong>\u041a\u043e\u0440\u0442\u0435\u0436\u043d\u044b\u0435 \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u044b<\/strong><\/p>\n<p>  <\/p>\n<p>\u0415\u0441\u043b\u0438 \u043d\u0430\u0437\u0432\u0430\u043d\u0438\u044f \u043f\u043e\u043b\u0435\u0439 \u043d\u0435\u0432\u0430\u0436\u043d\u044b, \u043c\u043e\u0436\u043d\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u043a\u043e\u0440\u0442\u0435\u0436\u043d\u0443\u044e \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0443:<\/p>\n<p>  <\/p>\n<pre><code class=\"rust\">struct Point(i32, i32);  fn main() {     let p = Point(17, 23);     println!(\"({}, {})\", p.0, p.1); }<\/code><\/pre>\n<p>  <\/p>\n<p>\u042d\u0442\u043e \u0447\u0430\u0441\u0442\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f \u0434\u043b\u044f \u043e\u0431\u0435\u0440\u0442\u043e\u043a \u0435\u0434\u0438\u043d\u0438\u0447\u043d\u044b\u0445 \u043f\u043e\u043b\u0435\u0439 (single-field wrappers), \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043d\u0430\u0437\u044b\u0432\u0430\u044e\u0442\u0441\u044f <code>newtypes<\/code> (\u043d\u043e\u0432\u044b\u043c\u0438 \u0442\u0438\u043f\u0430\u043c\u0438):<\/p>\n<p>  <\/p>\n<pre><code class=\"rust\">struct PoundsOfForce(f64); struct Newtons(f64);  fn compute_thruster_force() -> PoundsOfForce {     todo!(\"Ask a rocket scientist at NASA\") }  fn set_thruster_force(force: Newtons) {     \/\/ ... }  fn main() {     let force = compute_thruster_force();     set_thruster_force(force); }<\/code><\/pre>\n<p>  <\/p>\n<p>\u0420\u0435\u043c\u0430\u0440\u043a\u0438:<\/p>\n<p>  <\/p>\n<ul>\n<li><code>newtype<\/code> \u2014 \u043e\u0442\u043b\u0438\u0447\u043d\u044b\u0439 \u0441\u043f\u043e\u0441\u043e\u0431 \u0437\u0430\u043a\u043e\u0434\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0434\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u0443\u044e \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044e \u043e \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0438 \u0432 \u043f\u0440\u0438\u043c\u0438\u0442\u0438\u0432\u043d\u043e\u043c \u0442\u0438\u043f\u0435, \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440:<br \/> \n<ul>\n<li>\u0447\u0438\u0441\u043b\u043e \u0438\u0437\u043c\u0435\u0440\u044f\u0435\u0442\u0441\u044f \u0432 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u043d\u044b\u0445 \u0435\u0434\u0438\u043d\u0438\u0446\u0430\u0445 (<code>Newtons<\/code>)<\/li>\n<li>\u043f\u0440\u0438 \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u0438 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u043f\u0440\u043e\u0445\u043e\u0434\u0438\u0442 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u043d\u0443\u044e \u0432\u0430\u043b\u0438\u0434\u0430\u0446\u0438\u044e, \u043a\u043e\u0442\u043e\u0440\u0443\u044e \u043d\u0435 \u043d\u0443\u0436\u043d\u043e \u043a\u0430\u0436\u0434\u044b\u0439 \u0440\u0430\u0437 \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u0442\u044c \u0432\u0440\u0443\u0447\u043d\u0443\u044e: <code>PhoneNumber(String)<\/code> \u0438\u043b\u0438 <code>OddNumber(u32)<\/code><\/li>\n<\/ul>\n<\/li>\n<li>\u043f\u0440\u0438\u043c\u0435\u0440 \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u0442\u043e\u043d\u043a\u043e\u0439 \u043e\u0442\u0441\u044b\u043b\u043a\u043e\u0439 \u043a \u043f\u0440\u043e\u0432\u0430\u043b\u0443 <a href=\"https:\/\/en.wikipedia.org\/wiki\/Mars_Climate_Orbiter\">Mars Climate Orbiter<\/a><\/li>\n<\/ul>\n<p>  <\/p>\n<p><strong>\u041f\u0435\u0440\u0435\u0447\u0438\u0441\u043b\u0435\u043d\u0438\u044f<\/strong><\/p>\n<p>  <\/p>\n<p>\u041a\u043b\u044e\u0447\u0435\u0432\u043e\u0435 \u0441\u043b\u043e\u0432\u043e <code>enum<\/code> \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u0441\u043e\u0437\u0434\u0430\u0442\u044c \u0442\u0438\u043f, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0438\u043c\u0435\u0435\u0442 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u0432\u0430\u0440\u0438\u0430\u043d\u0442\u043e\u0432:<\/p>\n<p>  <\/p>\n<pre><code class=\"rust\">#[derive(Debug)] enum Direction {     Left,     Right, }  #[derive(Debug)] enum PlayerMove {     Pass,                        \/\/ \u043f\u0440\u043e\u0441\u0442\u043e\u0439 \u0432\u0430\u0440\u0438\u0430\u043d\u0442     Run(Direction),              \/\/ \u043a\u043e\u0440\u0442\u0435\u0436\u043d\u044b\u0439 \u0432\u0430\u0440\u0438\u0430\u043d\u0442     Teleport { x: u32, y: u32 }, \/\/ \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u043d\u044b\u0439 \u0432\u0430\u0440\u0438\u0430\u043d\u0442 }  fn main() {     let m: PlayerMove = PlayerMove::Run(Direction::Left);     println!(\"On this turn: {:?}\", m); }<\/code><\/pre>\n<p>  <\/p>\n<p>\u0420\u0435\u043c\u0430\u0440\u043a\u0438:<\/p>\n<p>  <\/p>\n<ul>\n<li>\u043f\u0435\u0440\u0435\u0447\u0438\u0441\u043b\u0435\u043d\u0438\u0435 \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u0441\u043e\u0431\u0440\u0430\u0442\u044c \u043d\u0430\u0431\u043e\u0440 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0439 \u0432 \u043e\u0434\u0438\u043d \u0442\u0438\u043f<\/li>\n<li><code>Direction<\/code> \u2014 \u044d\u0442\u043e \u0442\u0438\u043f \u0441 \u0434\u0432\u0443\u043c\u044f \u0432\u0430\u0440\u0438\u0430\u043d\u0442\u0430\u043c\u0438: <code>Direction::Left<\/code> \u0438 <code>Direction::Right<\/code><\/li>\n<li><code>PlayerMove<\/code> \u2014 \u044d\u0442\u043e \u0442\u0438\u043f \u0441 \u0442\u0440\u0435\u043c\u044f \u0432\u0430\u0440\u0438\u0430\u043d\u0442\u0430\u043c\u0438. \u0412 \u0434\u043e\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u0435 \u043a \u043f\u043e\u043b\u0435\u0437\u043d\u044b\u043c \u043d\u0430\u0433\u0440\u0443\u0437\u043a\u0430\u043c (payloads) <code>Rust<\/code> \u0431\u0443\u0434\u0435\u0442 \u0445\u0440\u0430\u043d\u0438\u0442\u044c \u0434\u0438\u0441\u043a\u0440\u0438\u043c\u0438\u043d\u0430\u043d\u0442, \u0447\u0442\u043e\u0431\u044b \u0432\u043e \u0432\u0440\u0435\u043c\u044f \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f \u0437\u043d\u0430\u0442\u044c, \u043a\u0430\u043a\u043e\u0439 \u0432\u0430\u0440\u0438\u0430\u043d\u0442 \u043d\u0430\u0445\u043e\u0434\u0438\u0442\u0441\u044f \u0432 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0438 <code>PlayerMove<\/code><\/li>\n<li><code>Rust<\/code> \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442 \u043c\u0438\u043d\u0438\u043c\u0430\u043b\u044c\u043d\u043e\u0435 \u043f\u0440\u043e\u0441\u0442\u0440\u0430\u043d\u0441\u0442\u0432\u043e \u0434\u043b\u044f \u0445\u0440\u0430\u043d\u0435\u043d\u0438\u044f \u0434\u0438\u0441\u043a\u0440\u0438\u043c\u0438\u043d\u0430\u043d\u0442\u0430<br \/> \n<ul>\n<li>\u043f\u0440\u0438 \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e\u0441\u0442\u0438 \u0441\u043e\u0445\u0440\u0430\u043d\u044f\u0435\u0442\u0441\u044f \u0446\u0435\u043b\u043e\u0435 \u0447\u0438\u0441\u043b\u043e \u043d\u0430\u0438\u043c\u0435\u043d\u044c\u0448\u0435\u0433\u043e \u0442\u0440\u0435\u0431\u0443\u0435\u043c\u043e\u0433\u043e \u0440\u0430\u0437\u043c\u0435\u0440\u0430<\/li>\n<li>\u0435\u0441\u043b\u0438 \u0440\u0430\u0437\u0440\u0435\u0448\u0435\u043d\u043d\u044b\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u0432\u0430\u0440\u0438\u0430\u043d\u0442\u0430 \u043d\u0435 \u043e\u0445\u0432\u0430\u0442\u044b\u0432\u0430\u044e\u0442 \u0432\u0441\u0435 \u0431\u0438\u0442\u043e\u0432\u044b\u0435 \u043a\u043e\u043c\u0431\u0438\u043d\u0430\u0446\u0438\u0438, \u0434\u043b\u044f \u043a\u043e\u0434\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u0434\u0438\u0441\u043a\u0440\u0438\u043c\u0438\u043d\u0430\u043d\u0442\u0430 \u0431\u0443\u0434\u0443\u0442 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c\u0441\u044f \u043d\u0435\u0434\u043e\u043f\u0443\u0441\u0442\u0438\u043c\u044b\u0435 \u0431\u0438\u0442\u043e\u0432\u044b\u0435 \u043a\u043e\u043c\u0431\u0438\u043d\u0430\u0446\u0438\u0438 (&#171;\u043d\u0438\u0448\u0435\u0432\u044b\u0435 \u043e\u043f\u0442\u0438\u043c\u0438\u0437\u0430\u0446\u0438\u0438&#187; (niche optimization)). \u041d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, <code>Option&lt;&amp;u8><\/code> \u0445\u0440\u0430\u043d\u0438\u0442 \u043b\u0438\u0431\u043e \u0443\u043a\u0430\u0437\u0430\u0442\u0435\u043b\u044c \u043d\u0430 \u0446\u0435\u043b\u043e\u0435 \u0447\u0438\u0441\u043b\u043e, \u043b\u0438\u0431\u043e <code>NULL<\/code> \u0434\u043b\u044f \u0432\u0430\u0440\u0438\u0430\u043d\u0442\u0430 <code>None<\/code><\/li>\n<li>\u043f\u0440\u0438 \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e\u0441\u0442\u0438 \u0434\u0438\u0441\u043a\u0440\u0438\u043c\u0438\u043d\u0430\u043d\u0442\u043e\u043c \u043c\u043e\u0436\u043d\u043e \u0443\u043f\u0440\u0430\u0432\u043b\u044f\u0442\u044c (\u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u0434\u043b\u044f \u043e\u0431\u0435\u0441\u043f\u0435\u0447\u0435\u043d\u0438\u044f \u0441\u043e\u0432\u043c\u0435\u0441\u0442\u0438\u043c\u043e\u0441\u0442\u0438 \u0441 <code>C<\/code>):<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<p>  <\/p>\n<pre><code class=\"rust\">#[repr(u32)] enum Bar {     A, \/\/ 0     B = 10000,     C, \/\/ 10001 }  fn main() {     println!(\"A: {}\", Bar::A as u32);     println!(\"B: {}\", Bar::B as u32);     println!(\"C: {}\", Bar::C as u32); }<\/code><\/pre>\n<p>  <\/p>\n<p>\u0411\u0435\u0437 <code>repr<\/code> \u0442\u0438\u043f \u0434\u0438\u0441\u043a\u0440\u0438\u043c\u0438\u043d\u0430\u043d\u0442\u0430 \u0437\u0430\u043d\u0438\u043c\u0430\u0435\u0442 2 \u0431\u0430\u0439\u0442\u0430, \u043f\u043e\u0441\u043a\u043e\u043b\u044c\u043a\u0443 <code>10001<\/code> \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u0435\u0442 \u0434\u0432\u0443\u043c \u0431\u0430\u0439\u0442\u0430\u043c.<\/p>\n<p>  <\/p>\n<p><strong>\u0421\u0442\u0430\u0442\u0438\u043a\u0438 \u0438 \u043a\u043e\u043d\u0441\u0442\u0430\u043d\u0442\u044b<\/strong><\/p>\n<p>  <\/p>\n<p>\u0421\u0442\u0430\u0442\u0438\u0447\u043d\u044b\u0435 (static) \u0438 \u043a\u043e\u043d\u0441\u0442\u0430\u043d\u0442\u043d\u044b\u0435 (constant) \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0435 \u2014 \u044d\u0442\u043e 2 \u0441\u043f\u043e\u0441\u043e\u0431\u0430 \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u044f \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0439 \u0441 \u0433\u043b\u043e\u0431\u0430\u043b\u044c\u043d\u043e\u0439 \u043e\u0431\u043b\u0430\u0441\u0442\u044c\u044e \u0432\u0438\u0434\u0438\u043c\u043e\u0441\u0442\u0438, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043d\u0435 \u043c\u043e\u0433\u0443\u0442 \u0431\u044b\u0442\u044c \u043f\u0435\u0440\u0435\u043c\u0435\u0449\u0435\u043d\u044b \u0438\u043b\u0438 \u043f\u0435\u0440\u0435\u0440\u0430\u0441\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u044b \u043f\u0440\u0438 \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u0438 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u044b.<\/p>\n<p>  <\/p>\n<p><em>const<\/em><\/p>\n<p>  <\/p>\n<p>\u041a\u043e\u043d\u0441\u0442\u0430\u043d\u0442\u043d\u044b\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u043e\u0446\u0435\u043d\u0438\u0432\u0430\u044e\u0442\u0441\u044f \u0432\u043e \u0432\u0440\u0435\u043c\u044f \u043a\u043e\u043c\u043f\u0438\u043b\u044f\u0446\u0438\u0438 \u0438 \u0438\u0445 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f <a href=\"https:\/\/rust-lang.github.io\/rfcs\/0246-const-vs-static.html\">\u0432\u0441\u0442\u0440\u0430\u0438\u0432\u0430\u044e\u0442\u0441\u044f \u043f\u0440\u0438 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0438<\/a> (inlined upon use):<\/p>\n<p>  <\/p>\n<pre><code class=\"rust\">const DIGEST_SIZE: usize = 3; const ZERO: Option&lt;u8> = Some(42);  fn compute_digest(text: &amp;str) -> [u8; DIGEST_SIZE] {     let mut digest = [ZERO.unwrap_or(0); DIGEST_SIZE];     for (idx, &amp;b) in text.as_bytes().iter().enumerate() {         digest[idx % DIGEST_SIZE] = digest[idx % DIGEST_SIZE].wrapping_add(b);     }     digest }  fn main() {     let digest = compute_digest(\"hello\");     println!(\"digest: {digest:?}\"); }<\/code><\/pre>\n<p>  <\/p>\n<p>\u0422\u043e\u043b\u044c\u043a\u043e \u0444\u0443\u043d\u043a\u0446\u0438\u0438, \u043f\u043e\u043c\u0435\u0447\u0435\u043d\u043d\u044b\u0435 \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e <code>const<\/code>, \u043c\u043e\u0433\u0443\u0442 \u0432\u044b\u0437\u044b\u0432\u0430\u0442\u044c\u0441\u044f \u0432\u043e \u0432\u0440\u0435\u043c\u044f \u043a\u043e\u043c\u043f\u0438\u043b\u044f\u0446\u0438\u0438 \u0434\u043b\u044f \u0433\u0435\u043d\u0435\u0440\u0430\u0446\u0438\u0438 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0439 <code>const<\/code>. \u041d\u043e \u0442\u0430\u043a\u0438\u0435 \u0444\u0443\u043d\u043a\u0446\u0438\u0438 \u043c\u043e\u0433\u0443\u0442 \u0432\u044b\u0437\u044b\u0432\u0430\u0442\u044c\u0441\u044f \u0438 \u0432\u043e \u0432\u0440\u0435\u043c\u044f \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f.<\/p>\n<p>  <\/p>\n<p><em>static<\/em><\/p>\n<p>  <\/p>\n<p>\u0421\u0442\u0430\u0442\u0438\u0447\u043d\u044b\u0435 \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0435 \u0436\u0438\u0432\u0443\u0442 \u043d\u0430 \u043f\u0440\u043e\u0442\u044f\u0436\u0435\u043d\u0438\u0438 \u0432\u0441\u0435\u0433\u043e \u0436\u0438\u0437\u043d\u0435\u043d\u043d\u043e\u0433\u043e \u0446\u0438\u043a\u043b\u0430 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u044b \u0438 \u043d\u0435 \u043c\u043e\u0433\u0443\u0442 \u043f\u0435\u0440\u0435\u043c\u0435\u0449\u0430\u0442\u044c\u0441\u044f:<\/p>\n<p>  <\/p>\n<pre><code class=\"rust\">static BANNER: &amp;str = \"welcome\";  fn main() {     println!(\"{BANNER}\"); }<\/code><\/pre>\n<p>  <\/p>\n<p>\u0417\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u0441\u0442\u0430\u0442\u0438\u0447\u043d\u044b\u0445 \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0445 \u043d\u0435 \u0432\u0441\u0442\u0440\u0430\u0438\u0432\u0430\u044e\u0442\u0441\u044f \u043f\u0440\u0438 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0438 \u0438 \u0438\u043c\u0435\u044e\u0442 \u0444\u0438\u043a\u0441\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0435 \u043b\u043e\u043a\u0430\u0446\u0438\u0438 \u0432 \u043f\u0430\u043c\u044f\u0442\u0438. \u042d\u0442\u043e \u043c\u043e\u0436\u0435\u0442 \u0431\u044b\u0442\u044c \u043f\u043e\u043b\u0435\u0437\u043d\u044b\u043c \u0434\u043b\u044f \u043d\u0435\u0431\u0435\u0437\u043e\u043f\u0430\u0441\u043d\u043e\u0433\u043e \u0438 \u0432\u0441\u0442\u0440\u043e\u0435\u043d\u043d\u043e\u0433\u043e \u043a\u043e\u0434\u0430 (FFI), \u043d\u043e \u0434\u043b\u044f \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u044f \u0433\u043b\u043e\u0431\u0430\u043b\u044c\u043d\u044b\u0445 \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0445 \u0440\u0435\u043a\u043e\u043c\u0435\u043d\u0434\u0443\u0435\u0442\u0441\u044f \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c <code>const<\/code>.<\/p>\n<p>  <\/p>\n<p>\u0420\u0435\u043c\u0430\u0440\u043a\u0438:<\/p>\n<p>  <\/p>\n<ul>\n<li><code>static<\/code> \u043e\u0431\u0435\u0441\u043f\u0435\u0447\u0438\u0432\u0430\u0435\u0442 \u0438\u0434\u0435\u043d\u0442\u0438\u0447\u043d\u043e\u0441\u0442\u044c \u043e\u0431\u044a\u0435\u043a\u0442\u0430 (object identity): \u0430\u0434\u0440\u0435\u0441 \u0432 \u043f\u0430\u043c\u044f\u0442\u0438 \u0438 \u0441\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u0435, \u043a\u0430\u043a \u0442\u043e\u0433\u043e \u0442\u0440\u0435\u0431\u0443\u044e\u0442 \u0442\u0438\u043f\u044b \u0441 \u0432\u043d\u0443\u0442\u0440\u0435\u043d\u043d\u0435\u0439 \u0438\u0437\u043c\u0435\u043d\u0447\u0438\u0432\u043e\u0441\u0442\u044c\u044e, \u0442\u0430\u043a\u0438\u0435 \u043a\u0430\u043a <code>Mutex&lt;T><\/code><\/li>\n<li>\u043a\u043e\u043d\u0441\u0442\u0430\u043d\u0442\u044b, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043e\u0446\u0435\u043d\u0438\u0432\u0430\u044e\u0442\u0441\u044f \u0432\u043e \u0432\u0440\u0435\u043c\u044f \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f, \u0442\u0440\u0435\u0431\u0443\u044e\u0442\u0441\u044f \u043d\u0435\u0447\u0430\u0441\u0442\u043e, \u043d\u043e \u0438\u043d\u043e\u0433\u0434\u0430 \u043e\u043d\u0438 \u043c\u043e\u0433\u0443\u0442 \u043e\u043a\u0430\u0437\u0430\u0442\u044c\u0441\u044f \u043f\u043e\u043b\u0435\u0437\u043d\u044b\u043c\u0438, \u0438 \u0438\u0445 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435 \u0431\u0435\u0437\u043e\u043f\u0430\u0441\u043d\u0435\u0435, \u0447\u0435\u043c \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435 \u0441\u0442\u0430\u0442\u0438\u043a<\/li>\n<\/ul>\n<p>  <\/p>\n<p><strong>\u0421\u0438\u043d\u043e\u043d\u0438\u043c\u044b \u0442\u0438\u043f\u043e\u0432<\/strong><\/p>\n<p>  <\/p>\n<p>\u0421\u0438\u043d\u043e\u043d\u0438\u043c \u0442\u0438\u043f\u0430 (type alias) \u0441\u043e\u0437\u0434\u0430\u0435\u0442 \u043d\u0430\u0437\u0432\u0430\u043d\u0438\u0435 \u0434\u043b\u044f \u0434\u0440\u0443\u0433\u043e\u0433\u043e \u0442\u0438\u043f\u0430. \u0414\u0432\u0430 \u0442\u0438\u043f\u0430 \u043c\u043e\u0433\u0443\u0442 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c\u0441\u044f \u0432\u0437\u0430\u0438\u043c\u043e\u0437\u0430\u043c\u0435\u043d\u044f\u0435\u043c\u043e:<\/p>\n<p>  <\/p>\n<pre><code class=\"rust\">enum CarryableConcreteItem {     Left,     Right, }  type Item = CarryableConcreteItem;  \/\/ \u0421\u0438\u043d\u043e\u043d\u0438\u043c\u044b \u043e\u0441\u043e\u0431\u0435\u043d\u043d\u043e \u043f\u043e\u043b\u0435\u0437\u043d\u044b \u0434\u043b\u044f \u0434\u043b\u0438\u043d\u043d\u044b\u0445, \u0441\u043b\u043e\u0436\u043d\u044b\u0445 \u0442\u0438\u043f\u043e\u0432 use std::cell::RefCell; use std::sync::{Arc, RwLock}; type PlayerInventory = RwLock&lt;Vec&lt;Arc&lt;RefCell&lt;Item>>>>;<\/code><\/pre>\n<p>  <\/p>\n<p><strong>\u0423\u043f\u0440\u0430\u0436\u043d\u0435\u043d\u0438\u0435: \u0441\u043e\u0431\u044b\u0442\u0438\u044f \u0432 \u043b\u0438\u0444\u0442\u0435<\/strong><\/p>\n<p>  <\/p>\n<p>\u0412\u0430\u0448\u0430 \u0437\u0430\u0434\u0430\u0447\u0430 \u0441\u043e\u0441\u0442\u043e\u0438\u0442 \u0432 \u0442\u043e\u043c, \u0447\u0442\u043e\u0431\u044b \u0441\u043e\u0437\u0434\u0430\u0442\u044c \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0443 \u0434\u0430\u043d\u043d\u044b\u0445 \u0434\u043b\u044f \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u0438\u044f \u0441\u043e\u0431\u044b\u0442\u0438\u0439 \u0432 \u0441\u0438\u0441\u0442\u0435\u043c\u0435 \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u044f \u043b\u0438\u0444\u0442\u043e\u043c. \u0412\u0430\u043c \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0438\u0442\u044c \u0442\u0438\u043f\u044b \u0438 \u0444\u0443\u043d\u043a\u0446\u0438\u0438 \u0434\u043b\u044f \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u044f \u0440\u0430\u0437\u043b\u0438\u0447\u043d\u044b\u0445 \u0441\u043e\u0431\u044b\u0442\u0438\u0439. \u0418\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0439\u0442\u0435 <code>#[derive(Debug)]<\/code>, \u0447\u0442\u043e\u0431\u044b \u0440\u0430\u0437\u0440\u0435\u0448\u0438\u0442\u044c \u0444\u043e\u0440\u043c\u0430\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u0442\u0438\u043f\u043e\u0432 \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e <code>{:?}<\/code>.<\/p>\n<p>  <\/p>\n<p>\u042d\u0442\u043e \u0443\u043f\u0440\u0430\u0436\u043d\u0435\u043d\u0438\u0435 \u0442\u0440\u0435\u0431\u0443\u0435\u0442 \u0442\u043e\u043b\u044c\u043a\u043e \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u044f \u0438 \u0437\u0430\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440 \u0434\u0430\u043d\u043d\u044b\u0445, \u0447\u0442\u043e\u0431\u044b \u0444\u0443\u043d\u043a\u0446\u0438\u044f <code>main()<\/code> \u0440\u0430\u0431\u043e\u0442\u0430\u043b\u0430 \u0431\u0435\u0437 \u043e\u0448\u0438\u0431\u043e\u043a.<\/p>\n<p>  <\/p>\n<pre><code class=\"rust\">#[derive(Debug)] \/\/\/ \u0421\u043e\u0431\u044b\u0442\u0438\u0435, \u043d\u0430 \u043a\u043e\u0442\u043e\u0440\u043e\u0435 \u0434\u043e\u043b\u0436\u0435\u043d \u0440\u0435\u0430\u0433\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u043a\u043e\u043d\u0442\u0440\u043e\u043b\u043b\u0435\u0440 enum Event {     todo!(\"\u0414\u043e\u0431\u0430\u0432\u0438\u0442\u044c \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u044b\u0435 \u0432\u0430\u0440\u0438\u0430\u043d\u0442\u044b\") }  \/\/\/ \u041d\u0430\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u0435 \u0434\u0432\u0438\u0436\u0435\u043d\u0438\u044f #[derive(Debug)] enum Direction {     Up,     Down, }  \/\/\/ \u041b\u0438\u0444\u0442 \u043f\u0440\u0438\u0431\u044b\u043b \u043d\u0430 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u043d\u044b\u0439 \u044d\u0442\u0430\u0436 fn car_arrived(floor: i32) -> Event {     todo!(\"\u0440\u0435\u0430\u043b\u0438\u0437\u0443\u0439 \u043c\u0435\u043d\u044f\") }  \/\/\/ \u0414\u0432\u0435\u0440\u0438 \u043b\u0438\u0444\u0442\u0430 \u043e\u0442\u043a\u0440\u044b\u043b\u0438\u0441\u044c fn car_door_opened() -> Event {     todo!(\"\u0440\u0435\u0430\u043b\u0438\u0437\u0443\u0439 \u043c\u0435\u043d\u044f\") }  \/\/\/ \u0414\u0432\u0435\u0440\u0438 \u043b\u0438\u0444\u0442\u0430 \u0437\u0430\u043a\u0440\u044b\u043b\u0438\u0441\u044c fn car_door_closed() -> Event {     todo!(\"\u0440\u0435\u0430\u043b\u0438\u0437\u0443\u0439 \u043c\u0435\u043d\u044f\") }  \/\/\/ \u0412 \u0432\u0435\u0441\u0442\u0438\u0431\u044e\u043b\u0435 \u043b\u0438\u0444\u0442\u0430 \u043d\u0430 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u043d\u043e\u043c \u044d\u0442\u0430\u0436\u0435 \u0431\u044b\u043b\u0430 \u043d\u0430\u0436\u0430\u0442\u0430 \u043a\u043d\u043e\u043f\u043a\u0430 \u043d\u0430\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u044f fn lobby_call_button_pressed(floor: i32, dir: Direction) -> Event {     todo!(\"\u0440\u0435\u0430\u043b\u0438\u0437\u0443\u0439 \u043c\u0435\u043d\u044f\") }  \/\/\/ \u0412 \u043a\u0430\u0431\u0438\u043d\u0435 \u043b\u0438\u0444\u0442\u0430 \u0431\u044b\u043b\u0430 \u043d\u0430\u0436\u0430\u0442\u0430 \u043a\u043d\u043e\u043f\u043a\u0430 \u044d\u0442\u0430\u0436\u0430 fn car_floor_button_pressed(floor: i32) -> Event {     todo!(\"\u0440\u0435\u0430\u043b\u0438\u0437\u0443\u0439 \u043c\u0435\u043d\u044f\") }  fn main() {     println!(         \"\u041f\u0430\u0441\u0441\u0430\u0436\u0438\u0440 \u043f\u0435\u0440\u0432\u043e\u0433\u043e \u044d\u0442\u0430\u0436\u0430 \u043d\u0430\u0436\u0430\u043b \u043a\u043d\u043e\u043f\u043a\u0443 \u0432\u0432\u0435\u0440\u0445: {:?}\",         lobby_call_button_pressed(0, Direction::Up)     );     println!(\"\u041b\u0438\u0444\u0442 \u043f\u0440\u0438\u0431\u044b\u043b \u043d\u0430 \u043f\u0435\u0440\u0432\u044b\u0439 \u044d\u0442\u0430\u0436: {:?}\", car_arrived(0));     println!(\"\u0414\u0432\u0435\u0440\u0438 \u043b\u0438\u0444\u0442\u0430 \u043e\u0442\u043a\u0440\u044b\u043b\u0438\u0441\u044c: {:?}\", car_door_opened());     println!(         \"\u041f\u0430\u0441\u0441\u0430\u0436\u0438\u0440 \u043d\u0430\u0436\u0430\u043b \u043d\u0430 \u043a\u043d\u043e\u043f\u043a\u0443 \u0442\u0440\u0435\u0442\u044c\u0435\u0433\u043e \u044d\u0442\u0430\u0436\u0430: {:?}\",         car_floor_button_pressed(3)     );     println!(\"\u0414\u0432\u0435\u0440\u0438 \u043b\u0438\u0444\u0442\u0430 \u0437\u0430\u043a\u0440\u044b\u043b\u0438\u0441\u044c: {:?}\", car_door_closed());     println!(\"\u041b\u0438\u0444\u0442 \u043f\u0440\u0438\u0431\u044b\u043b \u043d\u0430 \u0442\u0440\u0435\u0442\u0438\u0439 \u044d\u0442\u0430\u0436: {:?}\", car_arrived(3)); }<\/code><\/pre>\n<p>  <\/p>\n<div class=\"spoiler\" role=\"button\" tabindex=\"0\">                         <b class=\"spoiler_title\">\u0420\u0435\u0448\u0435\u043d\u0438\u0435<\/b>                         <\/p>\n<div class=\"spoiler_text\">\n<pre><code class=\"rust\">#[derive(Debug)] enum Event {     \/\/\/ \u0411\u044b\u043b\u0430 \u043d\u0430\u0436\u0430\u0442\u0430 \u043a\u043d\u043e\u043f\u043a\u0430     ButtonPressed(Button),     \/\/\/ \u041b\u0438\u0444\u0442 \u043f\u0440\u0438\u0431\u044b\u043b \u043d\u0430 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u043d\u044b\u0439 \u044d\u0442\u0430\u0436     CarArrived(Floor),     \/\/\/ \u0414\u0432\u0435\u0440\u0438 \u043b\u0438\u0444\u0442\u0430 \u043e\u0442\u043a\u0440\u044b\u043b\u0438\u0441\u044c     CarDoorOpened,     \/\/\/ \u0414\u0432\u0435\u0440\u0438 \u043b\u0438\u0444\u0442\u0430 \u0437\u0430\u043a\u0440\u044b\u043b\u0438\u0441\u044c     CarDoorClosed, }  \/\/\/ \u042d\u0442\u0430\u0436 \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u0435\u043d \u0446\u0435\u043b\u044b\u043c \u0447\u0438\u0441\u043b\u043e\u043c type Floor = i32;  #[derive(Debug)] enum Direction {     Up,     Down, }  \/\/\/ \u0414\u043e\u0441\u0442\u0443\u043f\u043d\u0430\u044f \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044e \u043a\u043d\u043e\u043f\u043a\u0430 #[derive(Debug)] enum Button {     \/\/\/ \u041a\u043d\u043e\u043f\u043a\u0430 \u0432\u044b\u0437\u043e\u0432\u0430\/\u043d\u0430\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u044f \u0432 \u0432\u0435\u0441\u0442\u0438\u0431\u044e\u043b\u0435 \u043b\u0438\u0444\u0442\u0430 \u043d\u0430 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u043d\u043e\u043c \u044d\u0442\u0430\u0436\u0435     LobbyCall(Direction, Floor),     \/\/\/ \u041a\u043d\u043e\u043f\u043a\u0430 \u044d\u0442\u0430\u0436\u0430 \u0432 \u043a\u0430\u0431\u0438\u043d\u0435 \u043b\u0438\u0444\u0442\u0430     CarFloor(Floor), }  fn car_arrived(floor: i32) -> Event {     Event::CarArrived(floor) }  fn car_door_opened() -> Event {     Event::CarDoorOpened }  fn car_door_closed() -> Event {     Event::CarDoorClosed }  fn lobby_call_button_pressed(floor: i32, dir: Direction) -> Event {     Event::ButtonPressed(Button::LobbyCall(dir, floor)) }  fn car_floor_button_pressed(floor: i32) -> Event {     Event::ButtonPressed(Button::CarFloor(floor)) }<\/code><\/pre>\n<\/div><\/div>\n<p>  <\/p>\n<p>\u042d\u0442\u043e \u043a\u043e\u043d\u0435\u0446 \u043f\u0435\u0440\u0432\u043e\u0439 \u0447\u0430\u0441\u0442\u0438 \u0440\u0443\u043a\u043e\u0432\u043e\u0434\u0441\u0442\u0432\u0430.<\/p>\n<p>  <\/p>\n<p>\u041c\u0430\u0442\u0435\u0440\u0438\u0430\u043b\u044b \u0434\u043b\u044f \u0431\u043e\u043b\u0435\u0435 \u0433\u043b\u0443\u0431\u043e\u043a\u043e\u0433\u043e \u0438\u0437\u0443\u0447\u0435\u043d\u0438\u044f \u0440\u0430\u0441\u0441\u043c\u043e\u0442\u0440\u0435\u043d\u043d\u044b\u0445 \u0442\u0435\u043c:<\/p>\n<p>  <\/p>\n<ul>\n<li><a href=\"https:\/\/doc.rust-lang.ru\/book\">\u041a\u043d\u0438\u0433\u0430\/\u0443\u0447\u0435\u0431\u043d\u0438\u043a \u043f\u043e Rust<\/a> (\u043d\u0430 \u0440\u0443\u0441\u0441\u043a\u043e\u043c \u044f\u0437\u044b\u043a\u0435) \u2014 \u0433\u043b\u0430\u0432\u044b 1-3, 5 \u0438 6<\/li>\n<li><a href=\"https:\/\/github.com\/rust-lang\/rustlings\">rustlings<\/a> \u2014 \u0443\u043f\u0440\u0430\u0436\u043d\u0435\u043d\u0438\u044f 00-03, 07-09<\/li>\n<li><a href=\"https:\/\/doc.rust-lang.ru\/stable\/rust-by-example\/\">Rust \u043d\u0430 \u043f\u0440\u0438\u043c\u0435\u0440\u0430\u0445<\/a> (\u043d\u0430 \u0440\u0443\u0441\u0441\u043a\u043e\u043c \u044f\u0437\u044b\u043a\u0435) \u2014 \u043f\u0440\u0438\u043c\u0435\u0440\u044b 1-5, 7-9<\/li>\n<li><a href=\"https:\/\/practice.rs\/why-exercise.html\">Rust by practice<\/a> \u2014 \u0443\u043f\u0440\u0430\u0436\u043d\u0435\u043d\u0438\u044f 3, 4, 6-8, 15 \u0438 16<\/li>\n<\/ul>\n<p>  <\/p>\n<p>Happy coding!<\/p>\n<p>  <\/p>\n<hr\/>\n<p>  <\/p>\n<p><a href=\"https:\/\/timeweb.cloud\/vds-vps?utm_source=habr&amp;utm_medium=banner&amp;utm_campaign\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/webt\/b5\/pj\/of\/b5pjofdoxth14ro-rjsrn7sbmiy.png\" data-src=\"https:\/\/habrastorage.org\/webt\/b5\/pj\/of\/b5pjofdoxth14ro-rjsrn7sbmiy.png\"\/><\/a><\/p>\n<\/div>\n<\/div>\n<\/div>\n<p><!----><!----><\/div>\n<p><!----><!----><br \/> \u0441\u0441\u044b\u043b\u043a\u0430 \u043d\u0430 \u043e\u0440\u0438\u0433\u0438\u043d\u0430\u043b \u0441\u0442\u0430\u0442\u044c\u0438 <a href=\"https:\/\/habr.com\/ru\/articles\/790556\/\"> https:\/\/habr.com\/ru\/articles\/790556\/<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<div><!--[--><!--]--><\/div>\n<div id=\"post-content-body\">\n<div>\n<div class=\"article-formatted-body article-formatted-body article-formatted-body_version-1\">\n<div xmlns=\"http:\/\/www.w3.org\/1999\/xhtml\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w780q1\/webt\/fj\/yi\/qn\/fjyiqnduv3l-rdgxnbu_t_qpgxk.jpeg\" data-src=\"https:\/\/habrastorage.org\/webt\/fj\/yi\/qn\/fjyiqnduv3l-rdgxnbu_t_qpgxk.jpeg\" data-blurred=\"true\"\/>  <\/p>\n<p>  <\/p>\n<p>  <\/p>\n<p>Hello world!<\/p>\n<p>  <\/p>\n<p>\u041f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u044f\u044e \u0432\u0430\u0448\u0435\u043c\u0443 \u0432\u043d\u0438\u043c\u0430\u043d\u0438\u044e \u043f\u0435\u0440\u0432\u0443\u044e \u0447\u0430\u0441\u0442\u044c \u043f\u0440\u0430\u043a\u0442\u0438\u0447\u0435\u0441\u043a\u043e\u0433\u043e \u0440\u0443\u043a\u043e\u0432\u043e\u0434\u0441\u0442\u0432\u0430 \u043f\u043e <a href=\"https:\/\/www.rust-lang.org\/ru\/\">Rust<\/a>.<\/p>\n<p>  <\/p>\n<ul>\n<li><a href=\"https:\/\/habr.com\/ru\/companies\/timeweb\/articles\/794941\/\">\u0412\u0442\u043e\u0440\u0430\u044f \u0447\u0430\u0441\u0442\u044c<\/a><\/li>\n<li><a href=\"https:\/\/habr.com\/ru\/companies\/timeweb\/articles\/796567\/\">\u0422\u0440\u0435\u0442\u044c\u044f \u0447\u0430\u0441\u0442\u044c<\/a><\/li>\n<li><a href=\"https:\/\/habr.com\/ru\/companies\/timeweb\/articles\/801201\/\">\u0427\u0435\u0442\u0432\u0435\u0440\u0442\u0430\u044f \u0447\u0430\u0441\u0442\u044c<\/a><\/li>\n<li><a href=\"https:\/\/habr.com\/ru\/companies\/timeweb\/articles\/802609\/\">\u0411\u043e\u043d\u0443\u0441<\/a><\/li>\n<\/ul>\n<p>  <\/p>\n<p><a href=\"https:\/\/my-js.org\/docs\/guide\/rust\/\">\u0414\u0440\u0443\u0433\u043e\u0439 \u0444\u043e\u0440\u043c\u0430\u0442<\/a>, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043c\u043e\u0436\u0435\u0442 \u043f\u043e\u043a\u0430\u0437\u0430\u0442\u044c\u0441\u044f \u0432\u0430\u043c \u0431\u043e\u043b\u0435\u0435 \u0443\u0434\u043e\u0431\u043d\u044b\u043c.<\/p>\n<p>  <\/p>\n<p>\u0420\u0443\u043a\u043e\u0432\u043e\u0434\u0441\u0442\u0432\u043e \u043e\u0441\u043d\u043e\u0432\u0430\u043d\u043e \u043d\u0430 <a href=\"https:\/\/google.github.io\/comprehensive-rust\/index.html\">Comprehensive Rust<\/a> \u2014 \u0440\u0443\u043a\u043e\u0432\u043e\u0434\u0441\u0442\u0432\u0435 \u043f\u043e <code>Rust<\/code> \u043e\u0442 \u043a\u043e\u043c\u0430\u043d\u0434\u044b <code>Android<\/code> \u0432 <code>Google<\/code> \u0438 \u0440\u0430\u0441\u0441\u0447\u0438\u0442\u0430\u043d\u043e \u043d\u0430 \u043b\u044e\u0434\u0435\u0439, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0443\u0432\u0435\u0440\u0435\u043d\u043d\u043e \u0432\u043b\u0430\u0434\u0435\u044e\u0442 \u043b\u044e\u0431\u044b\u043c \u0441\u043e\u0432\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u043c \u044f\u0437\u044b\u043a\u043e\u043c \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f. \u0415\u0449\u0435 \u0440\u0430\u0437: \u044d\u0442\u043e \u0440\u0443\u043a\u043e\u0432\u043e\u0434\u0441\u0442\u0432\u043e \u043d\u0435 \u0440\u0430\u0441\u0441\u0447\u0438\u0442\u0430\u043d\u043e \u043d\u0430 \u0442\u0435\u0445, \u043a\u0442\u043e \u0442\u043e\u043b\u044c\u043a\u043e \u043d\u0430\u0447\u0438\u043d\u0430\u0435\u0442 \u043a\u043e\u0434\u0438\u0442\u044c ?<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[],"tags":[],"class_list":["post-366961","post","type-post","status-publish","format-standard","hentry"],"_links":{"self":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/366961","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=366961"}],"version-history":[{"count":0,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/366961\/revisions"}],"wp:attachment":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=366961"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=366961"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=366961"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}