{"id":364781,"date":"2024-05-21T02:24:16","date_gmt":"2024-05-21T02:24:16","guid":{"rendered":"http:\/\/savepearlharbor.com\/?p=364781"},"modified":"-0001-11-30T00:00:00","modified_gmt":"-0001-11-29T21:00:00","slug":"","status":"publish","type":"post","link":"https:\/\/savepearlharbor.com\/?p=364781","title":{"rendered":"<span>\u0411\u043e\u043b\u044c\u0448\u0430\u044f \u0448\u043f\u0430\u0440\u0433\u0430\u043b\u043a\u0430 \u043f\u043e Rust. 1\/2<\/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 \u0431\u043e\u043b\u044c\u0448\u043e\u0439 \u0448\u043f\u0430\u0440\u0433\u0430\u043b\u043a\u0438 \u043f\u043e <a href=\"https:\/\/www.rust-lang.org\/ru\/\">Rust<\/a>.<\/p>\n<p>  <\/p>\n<p><a href=\"https:\/\/habr.com\/ru\/companies\/timeweb\/articles\/787924\/\">\u0412\u0442\u043e\u0440\u0430\u044f \u0447\u0430\u0441\u0442\u044c<\/a>.<\/p>\n<p>  <\/p>\n<p><a href=\"https:\/\/my-js.org\/docs\/cheatsheet\/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>\u041e\u0431\u0440\u0430\u0442\u0438\u0442\u0435 \u0432\u043d\u0438\u043c\u0430\u043d\u0438\u0435: \u0448\u043f\u0430\u0440\u0433\u0430\u043b\u043a\u0430 \u0440\u0430\u0441\u0441\u0447\u0438\u0442\u0430\u043d\u0430 \u043d\u0430 \u043b\u044e\u0434\u0435\u0439, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0445\u043e\u0440\u043e\u0448\u043e \u0437\u043d\u0430\u044e\u0442 \u043b\u044e\u0431\u043e\u0439 \u0441\u043e\u0432\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0439 \u044f\u0437\u044b\u043a \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f, \u0430 \u043d\u0435 \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>  <\/p>\n<p>\u0422\u0430\u043a\u0436\u0435 \u043d\u0430\u0441\u0442\u043e\u044f\u0442\u0435\u043b\u044c\u043d\u043e \u0440\u0435\u043a\u043e\u043c\u0435\u043d\u0434\u0443\u0435\u0442\u0441\u044f \u0445\u043e\u0442\u044f \u0431\u044b \u043f\u043e \u0434\u0438\u0430\u0433\u043e\u043d\u0430\u043b\u0438 \u043f\u0440\u043e\u0447\u0438\u0442\u0430\u0442\u044c \u0437\u0430\u043c\u0435\u0447\u0430\u0442\u0435\u043b\u044c\u043d\u044b\u0439 <a href=\"https:\/\/doc.rust-lang.ru\/book\/\">\u0423\u0447\u0435\u0431\u043d\u0438\u043a \u043f\u043e Rust<\/a> (\u043d\u0430 \u0440\u0443\u0441\u0441\u043a\u043e\u043c \u044f\u0437\u044b\u043a\u0435).<\/p>\n<p><a name=\"habracut\"><\/a>  <\/p>\n<h3 id=\"soderzhanie\">\u0421\u043e\u0434\u0435\u0440\u0436\u0430\u043d\u0438\u0435<\/h3>\n<p>  <\/p>\n<ul>\n<li><a href=\"#%D0%BE%D1%81%D0%BD%D0%BE%D0%B2%D1%8B\">\u041e\u0441\u043d\u043e\u0432\u044b<\/a><br \/> \n<ul>\n<li><a href=\"#%D0%BA%D0%BE%D0%BC%D0%BC%D0%B5%D0%BD%D1%82%D0%B0%D1%80%D0%B8%D0%B8-%D0%B8-%D0%B4%D0%BE%D0%BA%D1%83%D0%BC%D0%B5%D0%BD%D1%82%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5-%D0%BA%D0%BE%D0%B4%D0%B0\">\u041a\u043e\u043c\u043c\u0435\u043d\u0442\u0430\u0440\u0438\u0438 \u0438 \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u043a\u043e\u0434\u0430<\/a><\/li>\n<li><a href=\"#%D0%BF%D0%B5%D1%80%D0%B5%D0%BC%D0%B5%D0%BD%D0%BD%D1%8B%D0%B5-%D0%BA%D0%BE%D0%BD%D1%81%D1%82%D0%B0%D0%BD%D1%82%D1%8B-%D0%B8-%D1%81%D1%82%D0%B0%D1%82%D0%B8%D0%BA%D0%B8\">\u041f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0435, \u043a\u043e\u043d\u0441\u0442\u0430\u043d\u0442\u044b \u0438 \u0441\u0442\u0430\u0442\u0438\u043a\u0438<\/a><\/li>\n<li><a href=\"#%D1%84%D1%83%D0%BD%D0%BA%D1%86%D0%B8%D0%B8\">\u0424\u0443\u043d\u043a\u0446\u0438\u0438<\/a><\/li>\n<li><a href=\"#%D0%BF%D1%80%D0%B8%D0%BC%D0%B8%D1%82%D0%B8%D0%B2%D0%BD%D1%8B%D0%B5-%D1%82%D0%B8%D0%BF%D1%8B-%D0%B4%D0%B0%D0%BD%D0%BD%D1%8B%D1%85\">\u041f\u0440\u0438\u043c\u0438\u0442\u0438\u0432\u043d\u044b\u0435 \u0442\u0438\u043f\u044b \u0434\u0430\u043d\u043d\u044b\u0445<\/a><\/li>\n<li><a href=\"#%D0%BE%D0%BF%D0%B5%D1%80%D0%B0%D1%82%D0%BE%D1%80%D1%8B\">\u041e\u043f\u0435\u0440\u0430\u0442\u043e\u0440\u044b<\/a><\/li>\n<li><a href=\"#%D0%BF%D0%BE%D1%82%D0%BE%D0%BA%D0%B8-%D1%83%D0%BF%D1%80%D0%B0%D0%B2%D0%BB%D0%B5%D0%BD%D0%B8%D1%8F\">\u041f\u043e\u0442\u043e\u043a\u0438 \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u044f<\/a><\/li>\n<\/ul>\n<\/li>\n<li><a href=\"#%D0%B1%D0%BE%D0%BB%D1%8C%D1%88%D0%B5-%D1%87%D0%B5%D0%BC-%D0%BE%D1%81%D0%BD%D0%BE%D0%B2%D1%8B\">\u0411\u043e\u043b\u044c\u0448\u0435, \u0447\u0435\u043c \u043e\u0441\u043d\u043e\u0432\u044b<\/a><br \/> \n<ul>\n<li><a href=\"#%D0%B2%D0%B5%D0%BA%D1%82%D0%BE%D1%80%D1%8B-vectors\">\u0412\u0435\u043a\u0442\u043e\u0440\u044b (vectors)<\/a><\/li>\n<li><a href=\"#%D1%81%D1%82%D1%80%D1%83%D0%BA%D1%82%D1%83%D1%80%D1%8B-structs\">\u0421\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u044b (structs)<\/a><\/li>\n<li><a href=\"#%D0%BF%D0%B5%D1%80%D0%B5%D1%87%D0%B8%D1%81%D0%BB%D0%B5%D0%BD%D0%B8%D1%8F-enums\">\u041f\u0435\u0440\u0435\u0447\u0438\u0441\u043b\u0435\u043d\u0438\u044f (enums)<\/a><\/li>\n<li><a href=\"#%D0%B4%D0%B6%D0%B5%D0%BD%D0%B5%D1%80%D0%B8%D0%BA%D0%B8-generics\">\u0414\u0436\u0435\u043d\u0435\u0440\u0438\u043a\u0438 (generics)<\/a><\/li>\n<li><a href=\"#%D1%80%D0%B5%D0%B0%D0%BB%D0%B8%D0%B7%D0%B0%D1%86%D0%B8%D0%B8-%D0%B8-%D1%82%D1%80%D0%B5%D0%B9%D1%82%D1%8B-impls--traits\">\u0420\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438 \u0438 \u0442\u0440\u0435\u0439\u0442\u044b (impls \\&amp; traits)<\/a><\/li>\n<\/ul>\n<\/li>\n<li><a href=\"#%D1%81%D0%BB%D0%BE%D0%B6%D0%BD%D0%B0%D1%8F-%D1%87%D0%B0%D1%81%D1%82%D1%8C\">\u0421\u043b\u043e\u0436\u043d\u0430\u044f \u0447\u0430\u0441\u0442\u044c<\/a><br \/> \n<ul>\n<li><a href=\"#%D0%B2%D0%BB%D0%B0%D0%B4%D0%B5%D0%BD%D0%B8%D0%B5-ownership\">\u0412\u043b\u0430\u0434\u0435\u043d\u0438\u0435 (ownership)<\/a><\/li>\n<li><a href=\"#%D0%B7%D0%B0%D0%B8%D0%BC%D1%81%D1%82%D0%B2%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5-borrowing\">\u0417\u0430\u0438\u043c\u0441\u0442\u0432\u043e\u0432\u0430\u043d\u0438\u0435 (borrowing)<\/a><\/li>\n<li><a href=\"#%D0%B2%D1%80%D0%B5%D0%BC%D0%B5%D0%BD%D0%B0-%D0%B6%D0%B8%D0%B7%D0%BD%D0%B8-lifetimes\">\u0412\u0440\u0435\u043c\u0435\u043d\u0430 \u0436\u0438\u0437\u043d\u0438 (lifetimes)<\/a><\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<p>  <\/p>\n<h1 id=\"osnovy\">\u041e\u0441\u043d\u043e\u0432\u044b<\/h1>\n<p>  <\/p>\n<h2 id=\"kommentarii-i-dokumentirovanie-koda\">\u041a\u043e\u043c\u043c\u0435\u043d\u0442\u0430\u0440\u0438\u0438 \u0438 \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u043a\u043e\u0434\u0430<\/h2>\n<p>  <\/p>\n<h4 id=\"kommentarii\">\u041a\u043e\u043c\u043c\u0435\u043d\u0442\u0430\u0440\u0438\u0438<\/h4>\n<p>  <\/p>\n<pre><code class=\"rust\">\/\/ \u0421\u0442\u0440\u043e\u0447\u043d\u044b\u0435 \u043a\u043e\u043c\u043c\u0435\u043d\u0442\u0430\u0440\u0438\u0438 \/* \u0411\u043b\u043e\u0447\u043d\u044b\u0435 \u043a\u043e\u043c\u043c\u0435\u043d\u0442\u0430\u0440\u0438\u0438 *\/<\/code><\/pre>\n<p>  <\/p>\n<p>\u041f\u043e\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u044e\u0442\u0441\u044f \u0432\u043b\u043e\u0436\u0435\u043d\u043d\u044b\u0435 \u0431\u043b\u043e\u0447\u043d\u044b\u0435 \u043a\u043e\u043c\u043c\u0435\u043d\u0442\u0430\u0440\u0438\u0438.<\/p>\n<p>  <\/p>\n<p>\u0421\u0442\u0430\u0440\u0430\u0439\u0442\u0435\u0441\u044c \u0438\u0437\u0431\u0435\u0433\u0430\u0442\u044c \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u044f \u0431\u043b\u043e\u0447\u043d\u044b\u0445 \u043a\u043e\u043c\u043c\u0435\u043d\u0442\u0430\u0440\u0438\u0435\u0432.<\/p>\n<p>  <\/p>\n<h4 id=\"kommentarii-dokumentacii-doc-comments\">\u041a\u043e\u043c\u043c\u0435\u043d\u0442\u0430\u0440\u0438\u0438 \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u0438 (doc comments)<\/h4>\n<p>  <\/p>\n<p>\u041a\u043e\u043c\u0430\u043d\u0434\u0430 <code>cargo doc<\/code> \u0433\u0435\u043d\u0435\u0440\u0438\u0440\u0443\u0435\u0442 \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u044e \u043f\u0440\u043e\u0435\u043a\u0442\u0430 \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e <a href=\"https:\/\/doc.rust-lang.org\/stable\/rustdoc\/\">rustdoc<\/a>. \u0414\u043b\u044f \u0433\u0435\u043d\u0435\u0440\u0430\u0446\u0438\u0438 \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u0438 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044e\u0442\u0441\u044f \u0434\u043e\u043a-\u043a\u043e\u043c\u043c\u0435\u043d\u0442\u0430\u0440\u0438\u0438.<\/p>\n<p>  <\/p>\n<p>\u041e\u0431\u044b\u0447\u043d\u043e \u043c\u044b \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u0435\u043c \u0434\u043e\u043a-\u043a\u043e\u043c\u043c\u0435\u043d\u0442\u0430\u0440\u0438\u0438 \u0432 \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u0447\u043d\u044b\u0435 \u043a\u0440\u0435\u0439\u0442\u044b (library crates). \u0412\u043d\u0443\u0442\u0440\u0438 \u0434\u043e\u043a-\u043a\u043e\u043c\u043c\u0435\u043d\u0442\u0430\u0440\u0438\u0435\u0432 \u043c\u043e\u0436\u043d\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c <a href=\"https:\/\/github.com\/adam-p\/markdown-here\/wiki\/Markdown-Cheatsheet\">Markdown<\/a>.<\/p>\n<p>  <\/p>\n<pre><code class=\"rust\">\/\/\/ \u0421\u0442\u0440\u043e\u0447\u043d\u044b\u0435 \u043a\u043e\u043c\u043c\u0435\u043d\u0442\u0430\u0440\u0438\u0438; \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0438\u0440\u0443\u044e\u0442 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0439 \u044d\u043b\u0435\u043c\u0435\u043d\u0442 \/** \u0411\u043b\u043e\u0447\u043d\u044b\u0435 \u043a\u043e\u043c\u043c\u0435\u043d\u0442\u0430\u0440\u0438\u0438; \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0438\u0440\u0443\u044e\u0442 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0439 \u044d\u043b\u0435\u043c\u0435\u043d\u0442 *\/  \/\/! \u0421\u0442\u0440\u043e\u0447\u043d\u044b\u0435 \u043a\u043e\u043c\u043c\u0435\u043d\u0442\u0430\u0440\u0438\u0438; \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0438\u0440\u0443\u044e\u0442 \u0432\u043b\u043e\u0436\u0435\u043d\u043d\u044b\u0439 \u044d\u043b\u0435\u043c\u0435\u043d\u0442 \/*! \u0411\u043b\u043e\u0447\u043d\u044b\u0435 \u043a\u043e\u043c\u043c\u0435\u043d\u0442\u0430\u0440\u0438\u0438; \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0438\u0440\u0443\u044e\u0442 \u0432\u043b\u043e\u0436\u0435\u043d\u043d\u044b\u0439 \u044d\u043b\u0435\u043c\u0435\u043d\u0442 !*\/<\/code><\/pre>\n<p>  <\/p>\n<p>\u041f\u0440\u0438\u043c\u0435\u0440:<\/p>\n<p>  <\/p>\n<pre><code class=\"rust\">\/\/\/ \u042d\u0442\u043e\u0442 \u043c\u043e\u0434\u0443\u043b\u044c \u0441\u043e\u0434\u0435\u0440\u0436\u0438\u0442 \u0442\u0435\u0441\u0442\u044b; \u0432\u043d\u0435\u0448\u043d\u0438\u0439 \u043a\u043e\u043c\u043c\u0435\u043d\u0442\u0430\u0440\u0438\u0439 mod tests {     \/\/ ... }  mod tests {     \/\/! \u042d\u0442\u043e\u0442 \u043c\u043e\u0434\u0443\u043b\u044c \u0441\u043e\u0434\u0435\u0440\u0436\u0438\u0442 \u0442\u0435\u0441\u0442\u044b; \u0432\u043d\u0443\u0442\u0440\u0435\u043d\u043d\u0438\u0439 \u043a\u043e\u043c\u043c\u0435\u043d\u0442\u0430\u0440\u0438\u0439     \/\/ ... }<\/code><\/pre>\n<p>  <\/p>\n<p>\u041a\u043b\u044e\u0447\u0435\u0432\u043e\u0435 \u0441\u043b\u043e\u0432\u043e <code>mod<\/code> \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f \u0434\u043b\u044f \u043c\u043e\u0434\u0443\u043b\u0435\u0439. \u041c\u044b \u043e\u0431\u0441\u0443\u0434\u0438\u043c \u044d\u0442\u043e \u043f\u043e\u0437\u0436\u0435.<\/p>\n<p>  <\/p>\n<h4 id=\"dok-atributy-doc-attributes\">\u0414\u043e\u043a-\u0430\u0442\u0440\u0438\u0431\u0443\u0442\u044b (doc attributes)<\/h4>\n<p>  <\/p>\n<p><a href=\"https:\/\/doc.rust-lang.org\/rustdoc\/the-doc-attribute.html\">\u0414\u043e\u043a-\u0430\u0442\u0440\u0438\u0431\u0443\u0442\u044b<\/a> \u044f\u0432\u043b\u044f\u044e\u0442\u0441\u044f \u0430\u043b\u044c\u0442\u0435\u0440\u043d\u0430\u0442\u0438\u0432\u043e\u0439 \u0434\u043e\u043a-\u043a\u043e\u043c\u043c\u0435\u043d\u0442\u0430\u0440\u0438\u044f\u043c. \u041c\u044b \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u043c \u0438\u0445 \u0434\u043b\u044f \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u044f <code>rustdoc<\/code>. \u041f\u043e\u0434\u0440\u043e\u0431\u043d\u0435\u0435 \u043e \u0434\u043e\u043a-\u0430\u0442\u0440\u0438\u0431\u0443\u0442\u0430\u0445 \u043c\u043e\u0436\u043d\u043e \u043f\u043e\u0447\u0438\u0442\u0430\u0442\u044c <a href=\"https:\/\/doc.rust-lang.org\/stable\/rustdoc\/the-doc-attribute.html\">\u0437\u0434\u0435\u0441\u044c<\/a>.<\/p>\n<p>  <\/p>\n<p>\u0412 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0435\u043c \u043f\u0440\u0438\u043c\u0435\u0440\u0435 \u043a\u0430\u0436\u0434\u044b\u0439 \u043a\u043e\u043c\u043c\u0435\u043d\u0442\u0430\u0440\u0438\u0439 \u044d\u043a\u0432\u0438\u0432\u0430\u043b\u0435\u043d\u0442\u0435\u043d \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u044e\u0449\u0435\u043c\u0443 \u0434\u043e\u043a-\u0430\u0442\u0440\u0438\u0431\u0443\u0442\u0443:<\/p>\n<p>  <\/p>\n<pre><code class=\"rust\">\/\/\/ \u0412\u043d\u0435\u0448\u043d\u0438\u0439 \u043a\u043e\u043c\u043c\u0435\u043d\u0442\u0430\u0440\u0438\u0439 #[doc = \"\u0412\u043d\u0435\u0448\u043d\u0438\u0439 \u043a\u043e\u043c\u043c\u0435\u043d\u0442\u0430\u0440\u0438\u0439\"]  \/\/! \u0412\u043d\u0443\u0442\u0440\u0435\u043d\u043d\u0438\u0439 \u043a\u043e\u043c\u043c\u0435\u043d\u0442\u0430\u0440\u0438\u0439 #![doc = \"\u0412\u043d\u0443\u0442\u0440\u0435\u043d\u043d\u0438\u0439 \u043a\u043e\u043c\u043c\u0435\u043d\u0442\u0430\u0440\u0438\u0439\"]<\/code><\/pre>\n<p>  <\/p>\n<p><a href=\"https:\/\/doc.rust-lang.org\/reference\/attributes.html\">\u0410\u0442\u0440\u0438\u0431\u0443\u0442<\/a> \u2014 \u044d\u0442\u043e \u043e\u0431\u0449\u0438\u0435 \u043c\u0435\u0442\u0430\u0434\u0430\u043d\u043d\u044b\u0435 \u0432 \u0441\u0432\u043e\u0431\u043e\u0434\u043d\u043e\u0439 \u0444\u043e\u0440\u043c\u0435, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0438\u043d\u0442\u0435\u0440\u043f\u0440\u0435\u0442\u0438\u0440\u0443\u044e\u0442\u0441\u044f \u0432 \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0438\u0438 \u0441 \u043d\u0430\u0437\u0432\u0430\u043d\u0438\u0435\u043c, \u0441\u043e\u0433\u043b\u0430\u0448\u0435\u043d\u0438\u0435\u043c, \u0432\u0435\u0440\u0441\u0438\u044f\u043c\u0438 \u044f\u0437\u044b\u043a\u0430 \u0438 \u043a\u043e\u043c\u043f\u0438\u043b\u044f\u0442\u043e\u0440\u0430. \u0421\u0438\u043d\u0442\u0430\u043a\u0441\u0438\u0441:<\/p>\n<p>  <\/p>\n<ul>\n<li>\u0432\u043d\u0435\u0448\u043d\u0438\u0439 \u0430\u0442\u0440\u0438\u0431\u0443\u0442: <code>#[attr]<\/code><\/li>\n<li>\u0432\u043d\u0443\u0442\u0440\u0435\u043d\u043d\u0438\u0439 \u0430\u0442\u0440\u0438\u0431\u0443\u0442: <code>#![attr]<\/code><\/li>\n<\/ul>\n<p>  <\/p>\n<h4 id=\"pered-tem-kak-dvigatsya-dalshe\">\u041f\u0435\u0440\u0435\u0434 \u0442\u0435\u043c, \u043a\u0430\u043a \u0434\u0432\u0438\u0433\u0430\u0442\u044c\u0441\u044f \u0434\u0430\u043b\u044c\u0448\u0435&#8230;<\/h4>\n<p>  <\/p>\n<ul>\n<li>\u0418\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0439\u0442\u0435 <code>\/\/!<\/code> \u0442\u043e\u043b\u044c\u043a\u043e \u0434\u043b\u044f \u043d\u0430\u043f\u0438\u0441\u0430\u043d\u0438\u044f \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u0438 \u043a\u0440\u0435\u0439\u0442\u0430. \u0414\u043b\u044f \u0431\u043b\u043e\u043a\u043e\u0432 <code>mod<\/code> \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0439\u0442\u0435 <code>\/\/\/<\/code> \u0441\u043d\u0430\u0440\u0443\u0436\u0438 \u0431\u043b\u043e\u043a\u043e\u0432. \u0412\u0437\u0433\u043b\u044f\u043d\u0438\u0442\u0435 \u043d\u0430 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435 \u0434\u043e\u043a-\u043a\u043e\u043c\u043c\u0435\u043d\u0442\u0430\u0440\u0438\u0435\u0432 <code>\/\/!<\/code> \u0438 <code>\/\/\/<\/code> \u0432 \u043f\u043e\u043f\u0443\u043b\u044f\u0440\u043d\u044b\u0445 \u043a\u0440\u0435\u0439\u0442\u0430\u0445 \u043d\u0430 <a href=\"https:\/\/crates.io\/\">crates.io<\/a>. \u041d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u0432\u0437\u0433\u043b\u044f\u043d\u0438\u0442\u0435 \u043d\u0430 <a href=\"https:\/\/github.com\/serde-rs\/serde\/blob\/master\/serde\/src\/lib.rs\">serde\/src\/lib.rs<\/a> \u0438 <a href=\"https:\/\/github.com\/rust-random\/rand\/blob\/master\/src\/lib.rs\">rand\/src\/lib.rs<\/a><\/li>\n<li>\u0432\u044b\u043f\u043e\u043b\u043d\u0438\u0442\u0435 \u043a\u043e\u043c\u0430\u043d\u0434\u0443 <code>cargo new hello_lib --lib<\/code> \u0434\u043b\u044f \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u044f \u043e\u0431\u0440\u0430\u0437\u0446\u0430 \u043a\u0440\u0435\u0439\u0442\u0430 \u0438 \u0437\u0430\u043c\u0435\u043d\u0438\u0442\u0435 \u043a\u043e\u0434 \u0432 \u0444\u0430\u0439\u043b\u0435 <code>src\/lib.rs<\/code> \u043d\u0430 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0439:<\/li>\n<\/ul>\n<p>  <\/p>\n<pre><code class=\"rust\">\/\/! \u041f\u0440\u043e\u0441\u0442\u043e\u0439 \u043a\u0440\u0435\u0439\u0442 Hello World  \/\/\/ \u042d\u0442\u0430 \u0444\u0443\u043d\u043a\u0446\u0438\u044f \u0432\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u0442 \u043f\u0440\u0438\u0432\u0435\u0442\u0441\u0442\u0432\u0438\u0435; Hello, world! pub fn hello() -> String {     (\"Hello, world!\").to_string() }  #[cfg(test)] mod tests {     use super::hello;      #[test]     fn test_hello() {         assert_eq!(hello(), \"Hello, world!\");     } }<\/code><\/pre>\n<p>  <\/p>\n<p>\u0417\u0430\u0442\u0435\u043c \u0432\u044b\u043f\u043e\u043b\u043d\u0438\u0442\u0435 <code>cargo doc --open<\/code> \u0434\u043b\u044f \u0433\u0435\u043d\u0435\u0440\u0430\u0446\u0438\u0438 \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u0438 \u0438 \u0435\u0435 \u043e\u0442\u043a\u0440\u044b\u0442\u0438\u044f \u0432 \u0432\u0430\u0448\u0435\u043c \u0434\u0435\u0444\u043e\u043b\u0442\u043d\u043e\u043c \u0431\u0440\u0430\u0443\u0437\u0435\u0440\u0435.<\/p>\n<p>  <\/p>\n<h2 id=\"peremennye-konstanty-i-statiki\">\u041f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0435, \u043a\u043e\u043d\u0441\u0442\u0430\u043d\u0442\u044b \u0438 \u0441\u0442\u0430\u0442\u0438\u043a\u0438<\/h2>\n<p>  <\/p>\n<ul>\n<li>\u0412 <code>Rust<\/code> \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) (immutable), \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u043e\u043d\u0438 \u043d\u0430\u0437\u044b\u0432\u0430\u044e\u0442\u0441\u044f \u043f\u0440\u0438\u0432\u044f\u0437\u043a\u0430\u043c\u0438 \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0445 (variable bindings). \u0414\u043b\u044f \u043e\u0431\u044a\u044f\u0432\u043b\u0435\u043d\u0438\u044f \u043c\u0443\u0442\u0438\u0440\u0443\u0435\u043c\u043e\u0439 (\u0438\u0437\u043c\u0435\u043d\u044f\u0435\u043c\u043e\u0439) (mutable) \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u043e\u0439 \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 <code>mut<\/code>.<\/li>\n<li><code>Rust<\/code> \u2014 \u044d\u0442\u043e \u0441\u0442\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0438 \u0442\u0438\u043f\u0438\u0437\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0439 \u044f\u0437\u044b\u043a: \u0442\u0438\u043f\u044b \u0434\u0430\u043d\u043d\u044b\u0445 (data types) \u043f\u0440\u043e\u0432\u0435\u0440\u044f\u044e\u0442\u0441\u044f \u0432\u043e \u0432\u0440\u0435\u043c\u044f \u043a\u043e\u043c\u043f\u0438\u043b\u044f\u0446\u0438\u0438. \u041e\u0434\u043d\u0430\u043a\u043e \u044d\u0442\u043e \u043d\u0435 \u043e\u0437\u043d\u0430\u0447\u0430\u0435\u0442, \u0447\u0442\u043e \u0442\u0438\u043f\u044b \u0432\u0441\u0435\u0445 \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0445 \u0434\u043e\u043b\u0436\u043d\u044b \u0443\u043a\u0430\u0437\u044b\u0432\u0430\u0442\u044c\u0441\u044f \u044f\u0432\u043d\u043e. \u041a\u043e\u043c\u043f\u0438\u043b\u044f\u0442\u043e\u0440 &#171;\u0441\u043c\u043e\u0442\u0440\u0438\u0442&#187; \u043d\u0430 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435 \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u043e\u0439 \u0438 \u0443\u0441\u0442\u0430\u043d\u0430\u0432\u043b\u0438\u0432\u0430\u0435\u0442 \u0434\u043b\u044f \u043d\u0435\u0435 \u043b\u0443\u0447\u0448\u0438\u0439 \u0442\u0438\u043f. \u041d\u043e \u0434\u043b\u044f \u043a\u043e\u043d\u0441\u0442\u0430\u043d\u0442 (constants) \u0438 \u0441\u0442\u0430\u0442\u0438\u043a\u0438 (statics) \u0442\u0438\u043f\u044b \u0434\u043e\u043b\u0436\u043d\u044b \u0443\u043a\u0430\u0437\u044b\u0432\u0430\u0442\u044c\u0441\u044f \u044f\u0432\u043d\u043e. \u0422\u0438\u043f\u044b \u0443\u043a\u0430\u0437\u044b\u0432\u0430\u044e\u0442\u0441\u044f \u043f\u043e\u0441\u043b\u0435 \u0434\u0432\u043e\u0435\u0442\u043e\u0447\u0438\u0435 (<code>:<\/code>).<\/li>\n<\/ul>\n<p>  <\/p>\n<p>\u0412 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0445 \u043f\u0440\u0438\u043c\u0435\u0440\u0430\u0445 \u043c\u044b \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u043c \u0442\u0430\u043a\u0438\u0435 \u0442\u0438\u043f\u044b \u0434\u0430\u043d\u043d\u044b\u0445, \u043a\u0430\u043a <code>bool<\/code>, <code>i32<\/code>, <code>i64<\/code> \u0438 <code>f64<\/code>. \u041c\u044b \u043e\u0431\u0441\u0443\u0434\u0438\u043c \u044d\u0442\u043e \u043f\u043e\u0437\u0436\u0435.<\/p>\n<p>  <\/p>\n<h4 id=\"peremennye\">\u041f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0435<\/h4>\n<p>  <\/p>\n<p>\u0414\u043b\u044f \u043e\u0431\u044a\u044f\u0432\u043b\u0435\u043d\u0438\u044f \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u043e\u0439 \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 <code>let<\/code>. \u041d\u0430\u0437\u0432\u0430\u043d\u0438\u0435 (\u0438\u043c\u044f) \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u043e\u0439 \u043c\u043e\u0436\u0435\u0442 \u0431\u044b\u0442\u044c \u043f\u0440\u0438\u0432\u044f\u0437\u0430\u043d\u043e \u043a \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044e \u0438\u043b\u0438 \u0444\u0443\u043d\u043a\u0446\u0438\u0438. \u0422\u0430\u043a\u0436\u0435 \u043f\u043e\u0441\u043a\u043e\u043b\u044c\u043a\u0443 \u043b\u0435\u0432\u0430\u044f \u0447\u0430\u0441\u0442\u044c \u0432\u044b\u0440\u0430\u0436\u0435\u043d\u0438\u044f \u043f\u0440\u0438\u0432\u044f\u0437\u043a\u0438 \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f &#171;\u043f\u0430\u0442\u0442\u0435\u0440\u043d\u043e\u043c&#187; (pattern) \u043c\u044b \u043c\u043e\u0436\u0435\u043c \u043f\u0440\u0438\u0432\u044f\u0437\u044b\u0432\u0430\u0442\u044c \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u043d\u0430\u0437\u0432\u0430\u043d\u0438\u0439 \u043a \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u0438\u043c \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f\u043c \u0438\u043b\u0438 \u0444\u0443\u043d\u043a\u0446\u0438\u044f\u043c.<\/p>\n<p>  <\/p>\n<pre><code class=\"rust\">\/\/ \u0418\u043c\u043c\u0443\u0442\u0430\u0431\u0435\u043b\u044c\u043d\u0430\u044f \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u0430\u044f let a; \/\/ \u041e\u0431\u044a\u044f\u0432\u043b\u0435\u043d\u0438\u0435 (declaration); \u0431\u0435\u0437 \u0442\u0438\u043f\u0430 \u0434\u0430\u043d\u043d\u044b\u0445 a = 5; \/\/ \u041f\u0440\u0438\u0441\u0432\u043e\u0435\u043d\u0438\u0435\/\u043f\u0440\u0438\u0441\u0432\u0430\u0438\u0432\u0430\u043d\u0438\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f (assignment)  let b: i8; \/\/ \u041e\u0431\u044a\u044f\u0432\u043b\u0435\u043d\u0438\u0435; \u0441 \u0442\u0438\u043f\u043e\u043c \u0434\u0430\u043d\u043d\u044b\u0445 b = 5;  let t = true;        \/\/ \u041e\u0431\u044a\u044f\u0432\u043b\u0435\u043d\u0438\u0435 + \u043f\u0440\u0438\u0441\u0432\u043e\u0435\u043d\u0438\u0435; \u0431\u0435\u0437 \u0442\u0438\u043f\u0430 \u0434\u0430\u043d\u043d\u044b\u0445 let f: bool = false; \/\/ \u041e\u0431\u044a\u044f\u0432\u043b\u0435\u043d\u0438\u0435 + \u043f\u0440\u0438\u0441\u0432\u043e\u0435\u043d\u0438\u0435; \u0441 \u0442\u0438\u043f\u043e\u043c \u0434\u0430\u043d\u043d\u044b\u0445  \/\/ \u041d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0445 let (x, y) = (1, 2); \/\/ x = 1 \u0438 y = 2  \/\/ \u041c\u0443\u0442\u0430\u0431\u0435\u043b\u044c\u043d\u0430\u044f \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u0430\u044f let mut z = 5; z = 6;  \/\/ \u0417\u043d\u0430\u0447\u0435\u043d\u0438\u0435\u043c \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u043e\u0439 \u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u0441\u044f \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442 \u0432\u044b\u0440\u0430\u0436\u0435\u043d\u0438\u044f let z = { x + y }; \/\/ z = 3 \/\/ \u0417\u0430\u0442\u0435\u043d\u0435\u043d\u0438\u0435\/\u043f\u0435\u0440\u0435\u0437\u0430\u043f\u0438\u0441\u044c \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u043e\u0439 (variable shadowing) (\u0441\u043c. \u043d\u0438\u0436\u0435) let z = {     let x = 1;     let y = 2;      x + y }; \/\/ z = 3<\/code><\/pre>\n<p>  <\/p>\n<p>\u0412 <code>Rust<\/code> \u0442\u043e\u0447\u043a\u0430 \u0441 \u0437\u0430\u043f\u044f\u0442\u043e\u0439 (<code>;<\/code>) \u0432 \u043a\u043e\u043d\u0446\u0435 \u0441\u0442\u0440\u043e\u043a\u0438 \u043a\u043e\u0434\u0430 \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u043e\u0431\u044f\u0437\u0430\u0442\u0435\u043b\u044c\u043d\u043e\u0439 (\u0432 \u043e\u0442\u043b\u0438\u0447\u0438\u0435, \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u043e\u0442 <code>JavaScript<\/code>). \u041e\u0442\u0441\u0443\u0442\u0441\u0442\u0432\u0438\u0435 <code>;<\/code> \u043e\u0431\u044b\u0447\u043d\u043e \u043e\u0437\u043d\u0430\u0447\u0430\u0435\u0442 \u0432\u043e\u0437\u0432\u0440\u0430\u0442 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u0430 \u0432\u044b\u0440\u0430\u0436\u0435\u043d\u0438\u044f.<\/p>\n<p>  <\/p>\n<h4 id=\"konstanty\">\u041a\u043e\u043d\u0441\u0442\u0430\u043d\u0442\u044b<\/h4>\n<p>  <\/p>\n<p>\u0414\u043b\u044f \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u0438\u044f \u043a\u043e\u043d\u0441\u0442\u0430\u043d\u0442 \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 <code>const<\/code>. \u041a\u043e\u043d\u0441\u0442\u0430\u043d\u0442\u044b \u044f\u0432\u043b\u044f\u044e\u0442\u0441\u044f \u0438\u043c\u043c\u0443\u0442\u0430\u0431\u0435\u043b\u044c\u043d\u044b\u043c\u0438. \u041e\u043d\u0438 \u0436\u0438\u0432\u0443\u0442 \u0432 \u0442\u0435\u0447\u0435\u043d\u0438\u0435 \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, \u043d\u043e \u043d\u0435 \u0438\u043c\u0435\u044e\u0442 \u0444\u0438\u043a\u0441\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u043e\u0433\u043e \u0430\u0434\u0440\u0435\u0441\u0430 \u0432 \u043f\u0430\u043c\u044f\u0442\u0438.<\/p>\n<p>  <\/p>\n<pre><code class=\"rust\">\/\/ \u041d\u0430\u0437\u0432\u0430\u043d\u0438\u0435 \u0432 \u0441\u0442\u0438\u043b\u0435 SCREAMING_SNAKE_CASE \/\/ \u0422\u0438\u043f \u0443\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u0442\u0441\u044f \u044f\u0432\u043d\u043e const CONST_VAR: i32 = 5;<\/code><\/pre>\n<p>  <\/p>\n<h4 id=\"statiki\">\u0421\u0442\u0430\u0442\u0438\u043a\u0438<\/h4>\n<p>  <\/p>\n<p>\u041a\u043b\u044e\u0447\u0435\u0432\u043e\u0435 \u0441\u043b\u043e\u0432\u043e <code>static<\/code> \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f \u0434\u043b\u044f \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u0438\u044f \u043e\u0431\u044a\u0435\u043a\u0442\u0430 \u0442\u0438\u043f\u0430 &#171;\u0433\u043b\u043e\u0431\u0430\u043b\u044c\u043d\u0430\u044f \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u0430\u044f&#187;. \u0414\u043b\u044f \u043a\u0430\u0436\u0434\u043e\u0433\u043e \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u0435\u0442 \u0442\u043e\u043b\u044c\u043a\u043e \u043e\u0434\u0438\u043d \u044d\u043a\u0437\u0435\u043c\u043f\u043b\u044f\u0440 \u0442\u0430\u043a\u043e\u0433\u043e \u043e\u0431\u044a\u0435\u043a\u0442\u0430. \u0417\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u043d\u0430\u0445\u043e\u0434\u0438\u0442\u0441\u044f \u0432 \u0444\u0438\u043a\u0441\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u043e\u043c \u043c\u0435\u0441\u0442\u0435 \u0432 \u043f\u0430\u043c\u044f\u0442\u0438.<\/p>\n<p>  <\/p>\n<pre><code class=\"rust\">static STATIC_VAR: i32 = 5;<\/code><\/pre>\n<p>  <\/p>\n<p>\u0421\u0442\u0430\u0440\u0430\u0439\u0442\u0435\u0441\u044c \u0432\u0441\u0435\u0433\u0434\u0430 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c <code>const<\/code> \u0432\u043c\u0435\u0441\u0442\u043e <code>static<\/code> \u0434\u043b\u044f \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u0438\u044f \u043a\u043e\u043d\u0441\u0442\u0430\u043d\u0442. \u041f\u0440\u0438\u0432\u044f\u0437\u043a\u0430 \u043c\u0435\u0441\u0442\u0430 \u0432 \u043f\u0430\u043c\u044f\u0442\u0438 \u043a \u043a\u043e\u043d\u0441\u0442\u0430\u043d\u0442\u0435 \u0442\u0440\u0435\u0431\u0443\u0435\u0442\u0441\u044f \u043e\u0447\u0435\u043d\u044c \u0440\u0435\u0434\u043a\u043e. \u0418\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435 <code>const<\/code> \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u0442\u044c \u0442\u0430\u043a\u0438\u0435 \u043e\u043f\u0442\u0438\u043c\u0438\u0437\u0430\u0446\u0438\u0438, \u043a\u0430\u043a <a href=\"https:\/\/en.wikipedia.org\/wiki\/Constant_folding#Constant_propagation\">\u0440\u0430\u0441\u043f\u0440\u043e\u0441\u0442\u0440\u0430\u043d\u0435\u043d\u0438\u0435 \u043a\u043e\u043d\u0441\u0442\u0430\u043d\u0442\u044b (constant propagation)<\/a> \u043d\u0435 \u0442\u043e\u043b\u044c\u043a\u043e \u0432 \u0432\u0430\u0448\u0435\u043c \u043a\u0440\u0435\u0439\u0442\u0435, \u043d\u043e \u0442\u0430\u043a\u0436\u0435 \u0432 \u0437\u0430\u0432\u0438\u0441\u0438\u043c\u044b\u0445\/\u043f\u043e\u0434\u0447\u0438\u043d\u0435\u043d\u043d\u044b\u0445 \u043a\u0440\u0435\u0439\u0442\u0430\u0445.<\/p>\n<p>  <\/p>\n<h4 id=\"zatenenie-peremennyh-variable-shadowing\">\u0417\u0430\u0442\u0435\u043d\u0435\u043d\u0438\u0435 \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0445 (variable shadowing)<\/h4>\n<p>  <\/p>\n<p>\u0418\u043d\u043e\u0433\u0434\u0430 \u0432\u043e\u0437\u043d\u0438\u043a\u0430\u0435\u0442 \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e\u0441\u0442\u044c \u043f\u0440\u0435\u043e\u0431\u0440\u0430\u0437\u043e\u0432\u0430\u0442\u044c \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u043e\u0439 \u0438\u0437 \u043e\u0434\u043d\u0438\u0445 \u0435\u0434\u0438\u043d\u0438\u0446 \u0432 \u0434\u0440\u0443\u0433\u0438\u0435 \u0434\u043b\u044f \u0434\u0430\u043b\u044c\u043d\u0435\u0439\u0448\u0435\u0439 \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u043a\u0438. <code>Rust<\/code> \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u043f\u043e\u0432\u0442\u043e\u0440\u043d\u043e \u043e\u0431\u044a\u044f\u0432\u043b\u044f\u0442\u044c \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0435 \u0441 \u0434\u0440\u0443\u0433\u0438\u043c\u0438 \u0442\u0438\u043f\u0430\u043c\u0438 \u0434\u0430\u043d\u043d\u044b\u0445 \u0438\/\u0438\u043b\u0438 \u0434\u0440\u0443\u0433\u0438\u043c\u0438 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430\u043c\u0438 \u043c\u0443\u0442\u0430\u0431\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u0438. \u042d\u0442\u043e \u043d\u0430\u0437\u044b\u0432\u0430\u0435\u0442\u0441\u044f \u0437\u0430\u0442\u0435\u043d\u0435\u043d\u0438\u0435\u043c.<\/p>\n<p>  <\/p>\n<pre><code class=\"rust\">fn main() {     let x: f64 = -20.48; \/\/ float - \u0447\u0438\u0441\u043b\u043e \u0441 \u043f\u043b\u0430\u0432\u0430\u044e\u0449\u0435\u0439 \u0442\u043e\u0447\u043a\u043e\u0439     \/\/ \u042f\u0432\u043d\u043e\u0435 \u043f\u0440\u0438\u0432\u0435\u0434\u0435\u043d\u0438\u0435\/\u043f\u0440\u0435\u043e\u0431\u0440\u0430\u0437\u043e\u0432\u0430\u043d\u0438\u0435 \u0442\u0438\u043f\u0430     let x: i64 = x.floor() as i64; \/\/ int - \u0446\u0435\u043b\u043e\u0435 \u0447\u0438\u0441\u043b\u043e     println!(\"{}\", x); \/\/ -21      let s: &amp;str = \"hello\"; \/\/ &amp;str - \u0441\u0442\u0440\u043e\u043a\u043e\u0432\u044b\u0439 \u0441\u0440\u0435\u0437     \/\/ \u041d\u0435\u044f\u0432\u043d\u043e\u0435 \u043f\u0440\u0435\u043e\u0431\u0440\u0430\u0437\u043e\u0432\u0430\u043d\u0438\u0435 \u0442\u0438\u043f\u0430     let s: String = s.to_uppercase(); \/\/ String - \u0441\u0442\u0440\u043e\u043a\u0430     println!(\"{}\", s) \/\/ HELLO }<\/code><\/pre>\n<p>  <\/p>\n<h4 id=\"pered-tem-kak-dvigatsya-dalshe-1\">\u041f\u0435\u0440\u0435\u0434 \u0442\u0435\u043c, \u043a\u0430\u043a \u0434\u0432\u0438\u0433\u0430\u0442\u044c\u0441\u044f \u0434\u0430\u043b\u044c\u0448\u0435&#8230;<\/h4>\n<p>  <\/p>\n<ul>\n<li>\u0414\u043b\u044f \u043d\u0430\u0437\u0432\u0430\u043d\u0438\u0439 \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0445 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f \u0441\u0442\u0438\u043b\u044c <a href=\"https:\/\/en.wikipedia.org\/wiki\/Snake_case\">snake_case<\/a>, \u0430 \u0434\u043b\u044f \u043d\u0430\u0437\u0432\u0430\u043d\u0438\u0439 \u043a\u043e\u043d\u0441\u0442\u0430\u043d\u0442 \u0438 \u0441\u0442\u0430\u0442\u0438\u043a \u2014 <a href=\"https:\/\/en.wikipedia.org\/wiki\/Snake_case\">SCREAMING_SNAKE_CASE<\/a><\/li>\n<li>\u043e\u0431\u044b\u0447\u043d\u043e \u043a\u043e\u043d\u0441\u0442\u0430\u043d\u0442\u044b \u0438 \u0441\u0442\u0430\u0442\u0438\u043a\u0438 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u044f\u044e\u0442\u0441\u044f \u0432 \u043d\u0430\u0447\u0430\u043b\u0435 \u0444\u0430\u0439\u043b\u0430 \u0441\u043d\u0430\u0440\u0443\u0436\u0438 \u0444\u0443\u043d\u043a\u0446\u0438\u0438 (\u043f\u043e\u0441\u043b\u0435 \u0438\u043c\u043f\u043e\u0440\u0442\u0430 \u043c\u043e\u0434\u0443\u043b\u0435\u0439\/\u043e\u0431\u044a\u044f\u0432\u043b\u0435\u043d\u0438\u0439 <code>use<\/code>)<\/li>\n<\/ul>\n<p>  <\/p>\n<pre><code class=\"rust\">const PI: f64 = 3.14159265359;  fn main() {     println!(\"\u0417\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u03c0: {}\", PI); }<\/code><\/pre>\n<p>  <\/p>\n<h2 id=\"funkcii\">\u0424\u0443\u043d\u043a\u0446\u0438\u0438<\/h2>\n<p>  <\/p>\n<h4 id=\"imenovannye-funkcii\">\u0418\u043c\u0435\u043d\u043e\u0432\u0430\u043d\u043d\u044b\u0435 \u0444\u0443\u043d\u043a\u0446\u0438\u0438<\/h4>\n<p>  <\/p>\n<ul>\n<li>\u043e\u0431\u044a\u044f\u0432\u043b\u044f\u044e\u0442\u0441\u044f \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u043a\u043b\u044e\u0447\u0435\u0432\u043e\u0433\u043e \u0441\u043b\u043e\u0432\u0430 <code>fn<\/code><\/li>\n<li>\u043f\u0440\u0438 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0438 \u0430\u0440\u0433\u0443\u043c\u0435\u043d\u0442\u043e\u0432, \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u044f\u0442\u044c \u0438\u0445 \u0442\u0438\u043f\u044b<\/li>\n<li>\u043f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e \u0444\u0443\u043d\u043a\u0446\u0438\u0438 \u0432\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u044e\u0442 \u043f\u0443\u0441\u0442\u043e\u0439 \u043a\u043e\u0440\u0442\u0435\u0436 (tuple) (<code>()<\/code>). \u0412\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u043c\u044b\u0439 \u0442\u0438\u043f \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u044f\u0435\u0442\u0441\u044f \u043f\u043e\u0441\u043b\u0435 <code>-><\/code><\/li>\n<\/ul>\n<p>  <\/p>\n<p><em>Hello world<\/em><\/p>\n<p>  <\/p>\n<pre><code class=\"rust\">fn main() {     println!(\"Hello, world!\"); }<\/code><\/pre>\n<p>  <\/p>\n<p><em>\u041f\u0435\u0440\u0435\u0434\u0430\u0447\u0430 \u0430\u0440\u0433\u0443\u043c\u0435\u043d\u0442\u043e\u0432<\/em><\/p>\n<p>  <\/p>\n<pre><code class=\"rust\">fn print_sum(a: i8, b: i8) {     println!(\"C\u0443\u043c\u043c\u0430: {}\", a + b); }<\/code><\/pre>\n<p>  <\/p>\n<p><em>\u0412\u043e\u0437\u0432\u0440\u0430\u0442 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f<\/em><\/p>\n<p>  <\/p>\n<pre><code class=\"rust\">\/\/ \u0411\u0435\u0437 \u043a\u043b\u044e\u0447\u0435\u0432\u043e\u0433\u043e \u0441\u043b\u043e\u0432\u0430 `return`. \u0412\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u0442\u0441\u044f \u0442\u043e\u043b\u044c\u043a\u043e \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u0435\u0435 \u0432\u044b\u0440\u0430\u0436\u0435\u043d\u0438\u0435 fn plus_one(a: i32) -> i32 {     a + 1     \/\/ \u0412 \u043a\u043e\u043d\u0446\u0435 \u044d\u0442\u043e\u0439 \u0441\u0442\u0440\u043e\u043a\u0438 \u043e\u0442\u0441\u0443\u0442\u0441\u0442\u0432\u0443\u0435\u0442 `;`     \/\/ \u042d\u0442\u043e \u0432\u044b\u0440\u0430\u0436\u0435\u043d\u0438\u0435 \u044d\u043a\u0432\u0438\u0432\u0430\u043b\u0435\u043d\u0442\u043d\u043e `return a + 1;` }<\/code><\/pre>\n<p>  <\/p>\n<pre><code class=\"rust\">\/\/ \u0421 \u043a\u043b\u044e\u0447\u0435\u0432\u044b\u043c \u0441\u043b\u043e\u0432\u043e\u043c `return` fn plus_two(a: i32) -> i32 {     return a + 2;     \/\/ \u041a\u043b\u044e\u0447\u0435\u0432\u043e\u0435 \u0441\u043b\u043e\u0432\u043e `return` \u0441\u043b\u0435\u0434\u0443\u0435\u0442 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0442\u043e\u043b\u044c\u043a\u043e \u0434\u043b\u044f \u0443\u0441\u043b\u043e\u0432\u043d\u043e\u0433\u043e\/\u0440\u0430\u043d\u043d\u0435\u0433\u043e \u0432\u043e\u0437\u0432\u0440\u0430\u0442\u0430 (early return).     \/\/ \u0418\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435 `return` \u0432 \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u0435\u043c \u0432\u044b\u0440\u0430\u0436\u0435\u043d\u0438\u0438 \u0441\u0447\u0438\u0442\u0430\u0435\u0442\u0441\u044f \u043f\u043b\u043e\u0445\u043e\u0439 \u043f\u0440\u0430\u043a\u0442\u0438\u043a\u043e\u0439 }<\/code><\/pre>\n<p>  <\/p>\n<p><em>\u0423\u043a\u0430\u0437\u0430\u0442\u0435\u043b\u0438 \u043d\u0430 \u0444\u0443\u043d\u043a\u0446\u0438\u044e (function pointers), \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435 \u0432 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435 \u0442\u0438\u043f\u0430 \u0434\u0430\u043d\u043d\u044b\u0445<\/em><\/p>\n<p>  <\/p>\n<pre><code class=\"rust\">fn main() {     \/\/ \u0411\u0435\u0437 \u043e\u0431\u044a\u044f\u0432\u043b\u0435\u043d\u0438\u0439 \u0442\u0438\u043f\u043e\u0432     let p1 = plus_one;     let x = p1(5); \/\/ 6      \/\/ \u0421 \u043e\u0431\u044a\u044f\u0432\u043b\u0435\u043d\u0438\u044f\u043c\u0438 \u0442\u0438\u043f\u043e\u0432     let p1: fn(i32) -> i32 = plus_one;     let x = p1(5); \/\/ 6 }  fn plus_one(a: i32) -> i32 {     a + 1 }<\/code><\/pre>\n<p>  <\/p>\n<h4 id=\"zamykaniya-closures\">\u0417\u0430\u043c\u044b\u043a\u0430\u043d\u0438\u044f (closures)<\/h4>\n<p>  <\/p>\n<ul>\n<li>\u0422\u0430\u043a\u0436\u0435 \u0438\u0437\u0432\u0435\u0441\u0442\u043d\u044b \u043a\u0430\u043a \u0430\u043d\u043e\u043d\u0438\u043c\u043d\u044b\u0435 \u0438\u043b\u0438 \u043b\u044f\u043c\u0431\u0434\u0430-\u0444\u0443\u043d\u043a\u0446\u0438\u0438<\/li>\n<li>\u0442\u0438\u043f\u044b \u0430\u0440\u0433\u0443\u043c\u0435\u043d\u0442\u043e\u0432 \u0438 \u0432\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u043c\u043e\u0433\u043e \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u044f\u0432\u043b\u044f\u044e\u0442\u0441\u044f \u043e\u043f\u0446\u0438\u043e\u043d\u0430\u043b\u044c\u043d\u044b\u043c\u0438<\/li>\n<\/ul>\n<p>  <\/p>\n<p><em>\u0418\u043c\u0435\u043d\u043e\u0432\u0430\u043d\u043d\u0430\u044f \u0444\u0443\u043d\u043a\u0446\u0438\u044f \u0431\u0435\u0437 \u0437\u0430\u043c\u044b\u043a\u0430\u043d\u0438\u044f<\/em><\/p>\n<p>  <\/p>\n<pre><code class=\"rust\">fn main() {   let x = 2;   println!(\"{}\", get_square_value(x)); }  fn get_square_value(i: i32) -> i32 {     i * i }<\/code><\/pre>\n<p>  <\/p>\n<p><em>\u0421 \u043e\u043f\u0446\u0438\u043e\u043d\u0430\u043b\u044c\u043d\u044b\u043c\u0438 \u043e\u0431\u044a\u044f\u0432\u043b\u0435\u043d\u0438\u044f\u043c\u0438 \u0442\u0438\u043f\u043e\u0432 \u0430\u0440\u0433\u0443\u043c\u0435\u043d\u0442\u0430 \u0438 \u0432\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u043c\u043e\u0433\u043e \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f<\/em><\/p>\n<p>  <\/p>\n<pre><code class=\"rust\">fn main() {     let x = 2;      \/\/ \u0410\u0440\u0433\u0443\u043c\u0435\u043d\u0442\u044b \u043f\u0435\u0440\u0435\u0434\u0430\u044e\u0442\u0441\u044f \u0432\u043d\u0443\u0442\u0440\u0438 | |, \u0430 \u0442\u0435\u043b\u043e \u0432\u044b\u0440\u0430\u0436\u0435\u043d\u0438\u044f \u043e\u0431\u043e\u0440\u0430\u0447\u0438\u0432\u0430\u0435\u0442\u0441\u044f \u0432 { }     let square = |i: i32| -> i32 {         i * i     };     println!(\"{}\", square(x)); }<\/code><\/pre>\n<p>  <\/p>\n<p><em>\u0411\u0435\u0437 \u043e\u0431\u044a\u044f\u0432\u043b\u0435\u043d\u0438\u0439 \u0442\u0438\u043f\u043e\u0432<\/em><\/p>\n<p>  <\/p>\n<pre><code class=\"rust\">fn main() {     let x = 2;     let square = |i| i * i; \/\/ { } \u044f\u0432\u043b\u044f\u044e\u0442\u0441\u044f \u043e\u043f\u0446\u0438\u043e\u043d\u0430\u043b\u044c\u043d\u044b\u043c\u0438 \u0434\u043b\u044f \u043e\u0434\u043d\u043e\u0441\u0442\u0440\u043e\u0447\u043d\u044b\u0445 \u0437\u0430\u043c\u044b\u043a\u0430\u043d\u0438\u0439     println!(\"{}\", square(x)); }<\/code><\/pre>\n<p>  <\/p>\n<p><em>\u0421 \u043e\u043f\u0446\u0438\u043e\u043d\u0430\u043b\u044c\u043d\u044b\u043c\u0438 \u043e\u0431\u044a\u044f\u0432\u043b\u0435\u043d\u0438\u044f\u043c\u0438 \u0442\u0438\u043f\u043e\u0432; \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u0435 + \u0432\u044b\u0437\u043e\u0432<\/em><\/p>\n<p>  <\/p>\n<pre><code class=\"rust\">fn main() {     let x = 2;     let x_square = |i: i32| -> i32 { i * i }(x); \/\/ { } \u044f\u0432\u043b\u044f\u044e\u0442\u0441\u044f \u043e\u0431\u044f\u0437\u0430\u0442\u0435\u043b\u044c\u043d\u044b\u043c\u0438 \u043f\u0440\u0438 \u043e\u0434\u043d\u043e\u0432\u0440\u0435\u043c\u0435\u043d\u043d\u043e\u043c \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u0438 \u0438 \u0432\u044b\u0437\u043e\u0432\u0435     println!(\"{}\", x_square); }<\/code><\/pre>\n<p>  <\/p>\n<p><em>\u0411\u0435\u0437 \u043e\u0431\u044a\u044f\u0432\u043b\u0435\u043d\u0438\u0439 \u0442\u0438\u043f\u043e\u0432; \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u0435 + \u0432\u044b\u0437\u043e\u0432<\/em><\/p>\n<p>  <\/p>\n<pre><code class=\"rust\">fn main() {     let x = 2;     let x_square = |i| -> i32 { i * i }(x); \/\/ \u0442\u0438\u043f \u0432\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u043c\u043e\u0433\u043e \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u043e\u0431\u044f\u0437\u0430\u0442\u0435\u043b\u044c\u043d\u044b\u043c     println!(\"{}\", x_square); }<\/code><\/pre>\n<p>  <\/p>\n<h2 id=\"primitivnye-tipy-dannyh\">\u041f\u0440\u0438\u043c\u0438\u0442\u0438\u0432\u043d\u044b\u0435 \u0442\u0438\u043f\u044b \u0434\u0430\u043d\u043d\u044b\u0445<\/h2>\n<p>  <\/p>\n<h4 id=\"bool\">bool<\/h4>\n<p>  <\/p>\n<p><code>true<\/code> \u0438\u043b\u0438 <code>false<\/code>.<\/p>\n<p>  <\/p>\n<pre><code class=\"rust\">let x = true; let y: bool = false;<\/code><\/pre>\n<p>  <\/p>\n<h4 id=\"char\">char<\/h4>\n<p>  <\/p>\n<p>\u0415\u0434\u0438\u043d\u0438\u0447\u043d\u043e\u0435 \u0441\u043a\u0430\u043b\u044f\u0440\u043d\u043e\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u042e\u043d\u0438\u043a\u043e\u0434\u0430.<\/p>\n<p>  <\/p>\n<pre><code class=\"rust\">\/\/ \u041a\u0430\u0432\u044b\u0447\u043a\u0438 \u0434\u043e\u043b\u0436\u043d\u044b \u0431\u044b\u0442\u044c \u043e\u0434\u0438\u043d\u0430\u0440\u043d\u044b\u043c\u0438 let x = 'x'; let y: char = '?';<\/code><\/pre>\n<p>  <\/p>\n<p>\u0414\u043b\u044f \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u0438 \u042e\u043d\u0438\u043a\u043e\u0434\u0430 <code>char<\/code> \u0437\u0430\u043d\u0438\u043c\u0430\u0435\u0442 \u043d\u0435 1, \u0430 4 \u0431\u0430\u0439\u0442\u0430 (32 \u0431\u0438\u0442\u0430).<\/p>\n<p>  <\/p>\n<h4 id=\"i8-i16-i32-i64-i128\">i8, i16, i32, i64, i128<\/h4>\n<p>  <\/p>\n<p>8, 16, 32, 64 \u0438 128-\u0431\u0438\u0442\u043d\u044b\u0435 \u0446\u0435\u043b\u044b\u0435 \u0447\u0438\u0441\u043b\u0430 \u0444\u0438\u043a\u0441\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u043e\u0433\u043e \u0440\u0430\u0437\u043c\u0435\u0440\u0430 \u0441\u043e \u0437\u043d\u0430\u043a\u043e\u043c (\u00b1).<\/p>\n<p>  <\/p>\n<div class=\"scrollable-table\">\n<table>\n<thead>\n<tr>\n<th>\u0422\u0438\u043f<\/th>\n<th>MIN<\/th>\n<th>MAX<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td>i8<\/td>\n<td>-128<\/td>\n<td>127<\/td>\n<\/tr>\n<tr>\n<td>i16<\/td>\n<td>-32768<\/td>\n<td>32767<\/td>\n<\/tr>\n<tr>\n<td>i32<\/td>\n<td>-2147483648<\/td>\n<td>2147483647<\/td>\n<\/tr>\n<tr>\n<td>i64<\/td>\n<td>-9223372036854775808<\/td>\n<td>9223372036854775807<\/td>\n<\/tr>\n<tr>\n<td>i128<\/td>\n<td>-170141183460469231731687303715884105728<\/td>\n<td>170141183460469231731687303715884105727<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<p>  <\/p>\n<p>\u041c\u0438\u043d\u0438\u043c\u0430\u043b\u044c\u043d\u043e\u0435 \u0438 \u043c\u0430\u043a\u0441\u0438\u043c\u0430\u043b\u044c\u043d\u043e\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u0440\u0430\u0441\u0441\u0447\u0438\u0442\u044b\u0432\u0430\u044e\u0442\u0441\u044f \u043f\u043e \u0444\u043e\u0440\u043c\u0443\u043b\u0435: \u043e\u0442 -(2\u207f\u207b\u00b9) \u0434\u043e 2\u207f\u207b\u00b9-1. \u0414\u043b\u044f \u043f\u043e\u043b\u0443\u0447\u0435\u043d\u0438\u044f \u043c\u0438\u043d\u0438\u043c\u0430\u043b\u044c\u043d\u043e\u0433\u043e \u0438 \u043c\u0430\u043a\u0441\u0438\u043c\u0430\u043b\u044c\u043d\u043e\u0433\u043e \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u0442\u0438\u043f\u0430 \u043c\u043e\u0436\u043d\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u043c\u0435\u0442\u043e\u0434\u044b <code>min_value()<\/code> \u0438 <code>max_value()<\/code>, \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0435\u043d\u043d\u043e, \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, <code>i8::min_value()<\/code>.<\/p>\n<p>  <\/p>\n<pre><code class=\"rust\">let x = 10; \/\/ \u0434\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 \u0432 Rust \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f `i32` let y: i8 = -128;<\/code><\/pre>\n<p>  <\/p>\n<h4 id=\"u8-u16-u32-u64-u128\">u8, u16, u32, u64, u128<\/h4>\n<p>  <\/p>\n<p>8, 16, 32, 64 \u0438 128-\u0431\u0438\u0442\u043d\u044b\u0435 \u0446\u0435\u043b\u044b\u0435 \u0447\u0438\u0441\u043b\u0430 \u0444\u0438\u043a\u0441\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u043e\u0433\u043e \u0440\u0430\u0437\u043c\u0435\u0440\u0430 \u0431\u0435\u0437 \u0437\u043d\u0430\u043a\u0430 (0\/+).<\/p>\n<p>  <\/p>\n<div class=\"scrollable-table\">\n<table>\n<thead>\n<tr>\n<th>\u0422\u0438\u043f<\/th>\n<th>MIN<\/th>\n<th>MAX<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td>u8<\/td>\n<td>0<\/td>\n<td>255<\/td>\n<\/tr>\n<tr>\n<td>u16<\/td>\n<td>0<\/td>\n<td>65535<\/td>\n<\/tr>\n<tr>\n<td>u32<\/td>\n<td>0<\/td>\n<td>4294967295<\/td>\n<\/tr>\n<tr>\n<td>u64<\/td>\n<td>0<\/td>\n<td>18446744073709551615<\/td>\n<\/tr>\n<tr>\n<td>u128<\/td>\n<td>0<\/td>\n<td>340282366920938463463374607431768211455<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<p>  <\/p>\n<p>\u041c\u0438\u043d\u0438\u043c\u0430\u043b\u044c\u043d\u043e\u0435 \u0438 \u043c\u0430\u043a\u0441\u0438\u043c\u0430\u043b\u044c\u043d\u043e\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u0440\u0430\u0441\u0441\u0447\u0438\u0442\u044b\u0432\u0430\u044e\u0442\u0441\u044f \u043f\u043e \u0444\u043e\u0440\u043c\u0443\u043b\u0435: \u043e\u0442 0 \u0434\u043e 2\u207f-1. \u0414\u043b\u044f \u043f\u043e\u043b\u0443\u0447\u0435\u043d\u0438\u044f \u043c\u0438\u043d\u0438\u043c\u0430\u043b\u044c\u043d\u043e\u0433\u043e \u0438 \u043c\u0430\u043a\u0441\u0438\u043c\u0430\u043b\u044c\u043d\u043e\u0433\u043e \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u0442\u0438\u043f\u0430 \u0442\u0430\u043a\u0436\u0435 \u043c\u043e\u0436\u043d\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u043c\u0435\u0442\u043e\u0434\u044b <code>min_value()<\/code> \u0438 <code>max_value()<\/code>, \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0435\u043d\u043d\u043e, \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, <code>u8::max_value()<\/code>.<\/p>\n<p>  <\/p>\n<h4 id=\"isize-usize\">isize, usize<\/h4>\n<p>  <\/p>\n<p>\u0426\u0435\u043b\u043e\u0447\u0438\u0441\u043b\u0435\u043d\u043d\u044b\u0435 \u0442\u0438\u043f\u044b \u0441\u043e \u0437\u043d\u0430\u043a\u043e\u043c \u0438 \u0431\u0435\u0437 \u0437\u043d\u0430\u043a\u0430 \u0440\u0430\u0437\u043c\u0435\u0440\u043e\u043c \u0441 \u0443\u043a\u0430\u0437\u0430\u0442\u0435\u043b\u044c (pointer sized). \u0420\u0435\u0430\u043b\u044c\u043d\u044b\u0439 \u0431\u0438\u0442\u043e\u0432\u044b\u0439 \u0440\u0430\u0437\u043c\u0435\u0440 \u0437\u0430\u0432\u0438\u0441\u0438\u0442 \u043e\u0442 \u0430\u0440\u0445\u0438\u0442\u0435\u043a\u0442\u0443\u0440\u044b \u043a\u043e\u043c\u043f\u044c\u044e\u0442\u0435\u0440\u0430, \u0434\u043b\u044f \u043a\u043e\u0442\u043e\u0440\u043e\u0433\u043e \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u0435\u0442\u0441\u044f \u043a\u043e\u043c\u043f\u0438\u043b\u044f\u0446\u0438\u044f \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u044b. \u041f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e \u0440\u0430\u0437\u043c\u0435\u0440\u044b \u0440\u0430\u0432\u043d\u044b 32 \u0431\u0438\u0442\u0430\u043c \u043d\u0430 32-\u0431\u0438\u0442\u043d\u044b\u0445 \u043f\u043b\u0430\u0442\u0444\u043e\u0440\u043c\u0430\u0445 \u0438 64 \u0431\u0438\u0442\u0430\u043c \u043d\u0430 64-\u0431\u0438\u0442\u043d\u044b\u0445 \u043f\u043b\u0430\u0442\u0444\u043e\u0440\u043c\u0430\u0445.<\/p>\n<p>  <\/p>\n<h4 id=\"f32-f64\">f32, f64<\/h4>\n<p>  <\/p>\n<p>\u0427\u0438\u0441\u043b\u0430 \u0441 \u043f\u043b\u0430\u0432\u0430\u044e\u0449\u0435\u0439 \u0437\u0430\u043f\u044f\u0442\u043e\u0439 \u0440\u0430\u0437\u043c\u0435\u0440\u043e\u043c 32 \u0438 64 \u0431\u0438\u0442\u0430 (\u0447\u0438\u0441\u043b\u0430 \u0441 \u0434\u0435\u0441\u044f\u0442\u0438\u0447\u043d\u043e\u0439 \u0442\u043e\u0447\u043a\u043e\u0439). Rust \u0441\u043b\u0435\u0434\u0443\u0435\u0442 \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u0443 IEEE \u0434\u043b\u044f \u0434\u0432\u043e\u0438\u0447\u043d\u043e\u0439 \u0430\u0440\u0438\u0444\u043c\u0435\u0442\u0438\u043a\u0438 \u0441 \u043f\u043b\u0430\u0432\u0430\u044e\u0449\u0435\u0439 \u0437\u0430\u043f\u044f\u0442\u043e\u0439. \u0422\u0438\u043f <code>f32<\/code> \u0430\u043d\u0430\u043b\u043e\u0433\u0438\u0447\u0435\u043d \u0442\u0438\u043f\u0443 <code>float<\/code> (\u043e\u0434\u0438\u043d\u0430\u0440\u043d\u0430\u044f \u0442\u043e\u0447\u043d\u043e\u0441\u0442\u044c) \u0432 \u0434\u0440\u0443\u0433\u0438\u0445 \u044f\u0437\u044b\u043a\u0430\u0445 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f, \u0430 \u0442\u0438\u043f <code>f64<\/code> \u2014 \u0442\u0438\u043f\u0443 <code>double<\/code> (\u0434\u0432\u043e\u0439\u043d\u0430\u044f \u0442\u043e\u0447\u043d\u043e\u0441\u0442\u044c).<\/p>\n<p>  <\/p>\n<pre><code class=\"rust\">let x = 1.5; \/\/ \u0434\u0435\u0444\u043e\u043b\u0442\u043d\u044b\u043c \"\u043f\u043b\u0430\u0432\u0430\u044e\u0449\u0438\u043c\" \u0442\u0438\u043f\u043e\u043c \u0432 Rust \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f `f64` let y: f64 = 2.0;<\/code><\/pre>\n<p>  <\/p>\n<p>\u0421\u043b\u0435\u0434\u0443\u0435\u0442 \u0438\u0437\u0431\u0435\u0433\u0430\u0442\u044c \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u044f <code>f32<\/code>, \u0435\u0441\u043b\u0438 \u0442\u043e\u043b\u044c\u043a\u043e \u0432\u0430\u043c \u043d\u0435 \u043d\u0443\u0436\u043d\u043e \u0441\u0438\u043b\u044c\u043d\u043e \u0441\u043e\u043a\u0440\u0430\u0442\u0438\u0442\u044c \u043f\u043e\u0442\u0440\u0435\u0431\u043b\u0435\u043d\u0438\u0435 \u043f\u0430\u043c\u044f\u0442\u0438 \u0438\u043b\u0438 \u0435\u0441\u043b\u0438 \u0432\u044b \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u0435\u0442\u0435 \u043d\u0438\u0437\u043a\u043e\u0443\u0440\u043e\u0432\u043d\u0435\u0432\u0443\u044e \u043e\u043f\u0442\u0438\u043c\u0438\u0437\u0430\u0446\u0438\u044e, \u043a\u043e\u0433\u0434\u0430 \u0446\u0435\u043b\u0435\u0432\u043e\u0435 \u043e\u0431\u043e\u0440\u0443\u0434\u043e\u0432\u0430\u043d\u0438\u0435 \u043d\u0435 \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u0435\u0442 \u0434\u0432\u043e\u0439\u043d\u0443\u044e \u0442\u043e\u0447\u043d\u043e\u0441\u0442\u044c \u0438\u043b\u0438 \u043a\u043e\u0433\u0434\u0430 \u043e\u0434\u0438\u043d\u0430\u0440\u043d\u0430\u044f \u0442\u043e\u0447\u043d\u043e\u0441\u0442\u044c \u043d\u0430 \u043d\u0435\u043c \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442 \u0431\u044b\u0441\u0442\u0440\u0435\u0435, \u0447\u0435\u043c \u0434\u0432\u043e\u0439\u043d\u0430\u044f.<\/p>\n<p>  <\/p>\n<h4 id=\"massiv-array\">\u041c\u0430\u0441\u0441\u0438\u0432 (array)<\/h4>\n<p>  <\/p>\n<p>\u0421\u043f\u0438\u0441\u043e\u043a \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u043e\u0432 \u043e\u0434\u0438\u043d\u0430\u043a\u043e\u0432\u043e\u0433\u043e \u0442\u0438\u043f\u0430 \u0444\u0438\u043a\u0441\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u043e\u0433\u043e \u0440\u0430\u0437\u043c\u0435\u0440\u0430.<\/p>\n<p>  <\/p>\n<pre><code class=\"rust\">let a = [1, 2, 3]; let a: [i32; 3] = [1, 2, 3]; \/\/ [\u0442\u0438\u043f; \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u043e\u0432]  let b: [i32; 0] = []; \/\/ \u043f\u0443\u0441\u0442\u043e\u0439 \u043c\u0430\u0441\u0441\u0438\u0432  let mut c: [i32; 3] = [1, 2, 3]; c[0] = 2; c[1] = 4; c[2] = 6;  println!(\"{:?}\", c); \/\/ [2, 4, 6] println!(\"{:#?}\", c); \/\/  [ \/\/      2, \/\/      4, \/\/      6, \/\/  ]  let d = [0; 5];   \/\/ [0, 0, 0, 0, 0] let e = [\"x\"; 5]; \/\/ [\"x\", \"x\", \"x\", \"x\", \"x\"]<\/code><\/pre>\n<p>  <\/p>\n<p>\u041c\u0430\u0441\u0441\u0438\u0432\u044b \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. \u0414\u0430\u0436\u0435 \u043f\u0440\u0438 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0438 \u043a\u043b\u044e\u0447\u0435\u0432\u043e\u0433\u043e \u0441\u043b\u043e\u0432\u0430 <code>mut<\/code> \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u043e\u0432 \u043c\u0430\u0441\u0441\u0438\u0432\u0430 \u043d\u0435 \u043c\u043e\u0436\u0435\u0442 \u0431\u044b\u0442\u044c \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u043e.<\/p>\n<p>  <\/p>\n<p>\u0412\u0435\u043a\u0442\u043e\u0440\u044b (vectors) \u044f\u0432\u043b\u044f\u044e\u0442\u0441\u044f \u0434\u0438\u043d\u0430\u043c\u0438\u0447\u0435\u0441\u043a\u0438\u043c\u0438\/\u0440\u0430\u0441\u0448\u0438\u0440\u044f\u0435\u043c\u044b\u043c\u0438 (growable) \u043c\u0430\u0441\u0441\u0438\u0432\u0430\u043c\u0438. \u041e\u043d\u0438 \u043c\u043e\u0433\u0443\u0442 \u0441\u043e\u0434\u0435\u0440\u0436\u0430\u0442\u044c \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u044b \u043b\u044e\u0431\u043e\u0433\u043e \u0442\u0438\u043f\u0430, \u043d\u043e \u0432\u0441\u0435 \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u044b \u0434\u043e\u043b\u0436\u043d\u044b \u0431\u044b\u0442\u044c \u043e\u0434\u0438\u043d\u0430\u043a\u043e\u0432\u043e\u0433\u043e \u0442\u0438\u043f\u0430.<\/p>\n<p>  <\/p>\n<h4 id=\"kortezh-tuple\">\u041a\u043e\u0440\u0442\u0435\u0436 (tuple)<\/h4>\n<p>  <\/p>\n<p>\u0423\u043f\u043e\u0440\u044f\u0434\u043e\u0447\u0435\u043d\u043d\u044b\u0439 \u0441\u043f\u0438\u0441\u043e\u043a \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u043e\u0432 \u0440\u0430\u0437\u043d\u044b\u0445 \u0438\u043b\u0438 \u043e\u0434\u0438\u043d\u0430\u043a\u043e\u0432\u043e\u0433\u043e \u0442\u0438\u043f\u0430 \u0444\u0438\u043a\u0441\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u043e\u0433\u043e \u0440\u0430\u0437\u043c\u0435\u0440\u0430.<\/p>\n<p>  <\/p>\n<pre><code class=\"rust\">let a = (1, 1.5, true, 'a'); let a: (i32, f64, bool, char) = (1, 1.5, true, 'a');  let mut b = (1, 1.5); b.0 = 2; b.1 = 3.0;  println!(\"{:?}\", b); \/\/ (2, 3.0) println!(\"{:#?}\", b); \/\/ ( \/\/   2, \/\/   3.0, \/\/ )  let (c, d) = b; \/\/ c = 2, d = 3.0 let (e, _, _, f) = a; \/\/ e = 1, f = 'a'  let g = (0,); \/\/ \u043e\u0434\u043d\u043e\u044d\u043b\u0435\u043c\u0435\u043d\u0442\u043d\u044b\u0439 \u043a\u043e\u0440\u0442\u0435\u0436 let h = (b, (2, 4), 5); \/\/ ((2, 3.0), (2, 4), 5)<\/code><\/pre>\n<p>  <\/p>\n<p>\u041a\u043e\u0440\u0442\u0435\u0436\u0438 \u043f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e \u0442\u0430\u043a\u0436\u0435 \u044f\u0432\u043b\u044f\u044e\u0442\u0441\u044f \u0438\u043c\u043c\u0443\u0442\u0430\u0431\u0435\u043b\u044c\u043d\u044b\u043c\u0438. \u0414\u0430\u0436\u0435 \u043f\u0440\u0438 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0438 \u043a\u043b\u044e\u0447\u0435\u0432\u043e\u0433\u043e \u0441\u043b\u043e\u0432\u0430 <code>mut<\/code> \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u043e\u0432 \u043a\u043e\u0440\u0442\u0435\u0436\u0430 \u043d\u0435 \u043c\u043e\u0436\u0435\u0442 \u0431\u044b\u0442\u044c \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u043e. \u041f\u0440\u0438 \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u0438 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u0430 \u043a\u043e\u0440\u0442\u0435\u0436\u0430, \u043d\u043e\u0432\u043e\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u0434\u043e\u043b\u0436\u043d\u043e \u0431\u044b\u0442\u044c \u0442\u043e\u0433\u043e \u0436\u0435 \u0442\u0438\u043f\u0430, \u0447\u0442\u043e \u043f\u0440\u0435\u0434\u044b\u0434\u0443\u0449\u0435\u0435.<\/p>\n<p>  <\/p>\n<h4 id=\"srezfragment-slice\">\u0421\u0440\u0435\u0437\/\u0444\u0440\u0430\u0433\u043c\u0435\u043d\u0442 (slice)<\/h4>\n<p>  <\/p>\n<p>\u0421\u0441\u044b\u043b\u043a\u0430 (reference) \u0434\u0438\u043d\u0430\u043c\u0438\u0447\u0435\u0441\u043a\u043e\u0433\u043e \u0440\u0430\u0437\u043c\u0435\u0440\u0430 \u043d\u0430 \u0434\u0440\u0443\u0433\u0443\u044e \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0443 \u0434\u0430\u043d\u043d\u044b\u0445.<\/p>\n<p>  <\/p>\n<p>\u041f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u044c\u0442\u0435, \u0447\u0442\u043e \u0445\u043e\u0442\u0438\u0442\u0435 \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c\/\u043f\u0435\u0440\u0435\u0434\u0430\u0442\u044c \u0447\u0430\u0441\u0442\u044c \u043c\u0430\u0441\u0441\u0438\u0432\u0430 \u0438\u043b\u0438 \u0434\u0440\u0443\u0433\u043e\u0439 \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u044b \u0434\u0430\u043d\u043d\u044b\u0445. \u0412\u043c\u0435\u0441\u0442\u043e \u043a\u043e\u043f\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u044d\u0442\u043e\u0439 \u0447\u0430\u0441\u0442\u0438 \u0432 \u0434\u0440\u0443\u0433\u043e\u0439 \u043c\u0430\u0441\u0441\u0438\u0432, <code>Rust<\/code> \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u0441\u043e\u0437\u0434\u0430\u0442\u044c \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u0438\u0435 (view) \/ \u0441\u0441\u044b\u043b\u043a\u0443 \u0434\u043b\u044f \u0434\u043e\u0441\u0442\u0443\u043f\u0430 \u0442\u043e\u043b\u044c\u043a\u043e \u043a \u0447\u0430\u0441\u0442\u0438 \u0434\u0430\u043d\u043d\u044b\u0445. \u042d\u0442\u0430 \u0441\u0441\u044b\u043b\u043a\u0430 \u043c\u043e\u0436\u0435\u0442 \u0431\u044b\u0442\u044c \u043c\u0443\u0442\u0430\u0431\u0435\u043b\u044c\u043d\u043e\u0439 \u0438\u043b\u0438 \u0438\u043c\u043c\u0443\u0442\u0430\u0431\u0435\u043b\u044c\u043d\u043e\u0439.<\/p>\n<p>  <\/p>\n<pre><code class=\"rust\">let a: [i32; 4] = [1, 2, 3, 4]; \/\/ \u0440\u043e\u0434\u0438\u0442\u0435\u043b\u044c\u0441\u043a\u0438\u0439 \u043c\u0430\u0441\u0441\u0438\u0432  let b: &amp;[i32] = &amp;a; \/\/ \u0441\u0440\u0435\u0437 \u0432\u0441\u0435\u0433\u043e \u043c\u0430\u0441\u0441\u0438\u0432\u0430 let c = &amp;a[0..4]; \/\/ \u043e\u0442 \u043f\u0435\u0440\u0432\u043e\u0433\u043e \u0434\u043e \u0447\u0435\u0442\u0432\u0435\u0440\u0442\u043e\u0433\u043e (\u043d\u0435 \u0432\u043a\u043b\u044e\u0447\u0430\u044f) \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u0430 let d = &amp;a[..]; \/\/ \u0441\u0440\u0435\u0437 \u0432\u0441\u0435\u0433\u043e \u043c\u0430\u0441\u0441\u0438\u0432\u0430  let e = &amp;a[1..3]; \/\/ [2, 3] let f = &amp;a[1..]; \/\/ [2, 3, 4] let g = &amp;a[..3]; \/\/ [1, 2, 3]<\/code><\/pre>\n<p>  <\/p>\n<h4 id=\"str\">str<\/h4>\n<p>  <\/p>\n<p>\u0411\u0435\u0437\u0440\u0430\u0437\u043c\u0435\u0440\u043d\u0430\u044f (unsized) \u043f\u043e\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u044c UTF-8 \u0444\u0440\u0430\u0433\u043c\u0435\u043d\u0442\u043e\u0432 \u0441\u0442\u0440\u043e\u043a \u042e\u043d\u0438\u043a\u043e\u0434\u0430.<\/p>\n<p>  <\/p>\n<pre><code class=\"rust\">let a = \"Hello, world.\"; \/\/ a: &amp;'static str let b: &amp;str = \"\u3053\u3093\u306b\u3061\u306f, \u4e16\u754c!\";<\/code><\/pre>\n<p>  <\/p>\n<p>\u042d\u0442\u043e \u0438\u043c\u043c\u0443\u0442\u0430\u0431\u0435\u043b\u044c\u043d\u044b\u0439\/\u0441\u0442\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0438 \u0432\u044b\u0434\u0435\u043b\u0435\u043d\u043d\u044b\u0439 \u0441\u0440\u0435\u0437, \u0441\u043e\u0434\u0435\u0440\u0436\u0430\u0449\u0438\u0439 \u043f\u043e\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u044c \u043a\u043e\u0434\u043e\u0432\u044b\u0445 \u0442\u043e\u0447\u0435\u043a UTF-8 \u043d\u0435\u0438\u0437\u0432\u0435\u0441\u0442\u043d\u043e\u0433\u043e \u0440\u0430\u0437\u043c\u0435\u0440\u0430, \u0445\u0440\u0430\u043d\u044f\u0449\u0443\u044e\u0441\u044f \u0433\u0434\u0435-\u0442\u043e \u0432 \u043f\u0430\u043c\u044f\u0442\u0438. <code>&amp;str<\/code> \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f \u0434\u043b\u044f \u0437\u0430\u0438\u043c\u0441\u0442\u0432\u043e\u0432\u0430\u043d\u0438\u044f (borrow) \u0438 \u043f\u0440\u0438\u0441\u0432\u043e\u0435\u043d\u0438\u044f \u0432\u0441\u0435\u0433\u043e \u043c\u0430\u0441\u0441\u0438\u0432\u0430 \u0434\u0430\u043d\u043d\u043e\u0439 \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u043e\u0439.<\/p>\n<p>  <\/p>\n<h4 id=\"funkciya\">\u0424\u0443\u043d\u043a\u0446\u0438\u044f<\/h4>\n<p>  <\/p>\n<p><code>p1<\/code> \u2014 \u044d\u0442\u043e \u0443\u043a\u0430\u0437\u0430\u0442\u0435\u043b\u044c \u043d\u0430 \u0444\u0443\u043d\u043a\u0446\u0438\u044e <code>plus_one()<\/code>:<\/p>\n<p>  <\/p>\n<pre><code class=\"rust\">fn main() {     let p1: fn(i32) -> i32 = plus_one;     let x = p1(5); \/\/ 6 }  fn plus_one(a: i32) -> i32 {     a + 1 }<\/code><\/pre>\n<p>  <\/p>\n<h4 id=\"pered-tem-kak-dvigatsya-dalshe-2\">\u041f\u0435\u0440\u0435\u0434 \u0442\u0435\u043c, \u043a\u0430\u043a \u0434\u0432\u0438\u0433\u0430\u0442\u044c\u0441\u044f \u0434\u0430\u043b\u044c\u0448\u0435&#8230;<\/h4>\n<p>  <\/p>\n<ul>\n<li>\u0412 <code>Rust<\/code> \u0434\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>, \u0430 \u0434\u0435\u0444\u043e\u043b\u0442\u043d\u044b\u043c \u043f\u043b\u0430\u0432\u0430\u044e\u0449\u0438\u043c \u0442\u0438\u043f\u043e\u043c \u2014 <code>f64<\/code><\/li>\n<\/ul>\n<p>  <\/p>\n<pre><code class=\"rust\">let i = 10;   \/\/ let i: i32 = 10; let f = 3.14; \/\/ let f: f64 = 3.14;<\/code><\/pre>\n<p>  <\/p>\n<ul>\n<li>\u0442\u0438\u043f \u0447\u0438\u0441\u043b\u0430 \u0442\u0430\u043a\u0436\u0435 \u043c\u043e\u0436\u0435\u0442 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u044f\u0442\u044c\u0441\u044f \u0432 \u0432\u0438\u0434\u0435 \u0441\u0443\u0444\u0444\u0438\u043a\u0441\u0430. \u0414\u043b\u044f \u0443\u043b\u0443\u0447\u0448\u0435\u043d\u0438\u044f \u0447\u0438\u0442\u0430\u0435\u043c\u043e\u0441\u0442\u0438 \u0434\u043b\u0438\u043d\u043d\u044b\u0435 \u0447\u0438\u0441\u043b\u0430 \u043c\u043e\u0433\u0443\u0442 \u0440\u0430\u0437\u0434\u0435\u043b\u044f\u0442\u044c\u0441\u044f <code>_<\/code><\/li>\n<\/ul>\n<p>  <\/p>\n<pre><code class=\"rust\">let a = 5i8; \/\/let a: i8 = 5;  let b = 100_000_000; \/\/ let b = 100000000; \/\/ `_` \u043c\u043e\u0433\u0443\u0442 \u0440\u0430\u0437\u043c\u0435\u0449\u0430\u0442\u044c\u0441\u044f \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u043b\u044c\u043d\u043e, \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, 10000_0000 - \u0442\u043e\u0436\u0435 \u0432\u0430\u043b\u0438\u0434\u043d\u043e\u0435 \u0447\u0438\u0441\u043b\u043e  let pi = 3.141_592_653_59f64; \/\/ let pi: f64 = 3.14159265359  const PI: f64 = 3.141_592_653_59; \/\/ \u0442\u0438\u043f \u043a\u043e\u043d\u0441\u0442\u0430\u043d\u0442 \u0438 \u0441\u0442\u0430\u0442\u0438\u043a \u0434\u043e\u043b\u0436\u0435\u043d \u0443\u043a\u0430\u0437\u044b\u0432\u0430\u0442\u044c\u0441\u044f \u043f\u043e\u0441\u043b\u0435 \u043d\u0430\u0437\u0432\u0430\u043d\u0438\u044f \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u043e\u0439<\/code><\/pre>\n<p>  <\/p>\n<ul>\n<li>\u0432 <code>Rust<\/code> \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u0435\u0442 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u0441\u0442\u0440\u043e\u043a\u043e\u0432\u044b\u0445 \u0442\u0438\u043f\u043e\u0432. \u0422\u0438\u043f <a href=\"https:\/\/doc.rust-lang.org\/std\/string\/struct.String.html\">String<\/a> \u2014 \u044d\u0442\u043e \u0441\u0442\u0440\u043e\u043a\u0430, \u0432\u044b\u0434\u0435\u043b\u0435\u043d\u043d\u0430\u044f \u0432 \u043a\u0443\u0447\u0435 (heap-allocated). \u041e\u043d\u0430 \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u0440\u0430\u0441\u0448\u0438\u0440\u044f\u0435\u043c\u043e\u0439 \u0441 \u0433\u0430\u0440\u0430\u043d\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u043e\u0439 \u043a\u043e\u0434\u0438\u0440\u043e\u0432\u043a\u043e\u0439 UTF-8. \u041f\u043e \u043e\u0431\u0449\u0435\u043c\u0443 \u043f\u0440\u0430\u0432\u0438\u043b\u0443, \u043a\u043e\u0433\u0434\u0430 \u043d\u0430\u043c \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u0432\u043b\u0430\u0434\u0435\u043d\u0438\u0435, \u0441\u043b\u0435\u0434\u0443\u0435\u0442 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c <code>String<\/code>, \u043a\u043e\u0433\u0434\u0430 \u043d\u0443\u0436\u043d\u043e \u0437\u0430\u0438\u043c\u0441\u0442\u0432\u043e\u0432\u0430\u0442\u044c \u0441\u0442\u0440\u043e\u043a\u0443, \u0441\u043b\u0435\u0434\u0443\u0435\u0442 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c <code>&amp;str<\/code><\/li>\n<li>\u0422\u0438\u043f <code>String<\/code> \u043c\u043e\u0436\u0435\u0442 \u0431\u044b\u0442\u044c \u0441\u0433\u0435\u043d\u0435\u0440\u0438\u0440\u043e\u0432\u0430\u043d \u0438\u0437 <code>&amp;str<\/code> \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u043c\u0435\u0442\u043e\u0434\u043e\u0432 <a href=\"https:\/\/doc.rust-lang.org\/std\/string\/trait.ToString.html\">to_string()<\/a> \u0438\u043b\u0438 <a href=\"https:\/\/doc.rust-lang.org\/std\/string\/struct.String.html#method.from\">String::from()<\/a>. \u041c\u0435\u0442\u043e\u0434 <a href=\"https:\/\/learning-rust.github.io\/docs\/primitive-data-types\/\">as_str()<\/a> \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u043a\u043e\u043d\u0432\u0435\u0440\u0442\u0438\u0440\u043e\u0432\u0430\u0442\u044c <code>String<\/code> \u0432 <code>&amp;str<\/code><\/li>\n<\/ul>\n<p>  <\/p>\n<pre><code class=\"rust\">let s: &amp;str = \"Hello\"; \/\/ &amp;str  let s = s.to_string(); \/\/ String let s = String::from(s); \/\/ String  let s = s.as_str(); \/\/ &amp;str<\/code><\/pre>\n<p>  <\/p>\n<h2 id=\"operatory\">\u041e\u043f\u0435\u0440\u0430\u0442\u043e\u0440\u044b<\/h2>\n<p>  <\/p>\n<h4 id=\"arifmeticheskie-operatory\">\u0410\u0440\u0438\u0444\u043c\u0435\u0442\u0438\u0447\u0435\u0441\u043a\u0438\u0435 \u043e\u043f\u0435\u0440\u0430\u0442\u043e\u0440\u044b<\/h4>\n<p>  <\/p>\n<p><code>+ - * \/ %<\/code><\/p>\n<p>  <\/p>\n<pre><code class=\"rust\">let a = 5; let b = a + 1; \/\/ 6 let c = a - 1; \/\/ 4 let d = a * 2; \/\/ 10 let e = a \/ 2; \/\/ 2, \u0430 \u043d\u0435 2.5 let f = a % 2; \/\/ 1  let g = 5.0 \/ 2.0; \/\/ 2.5<\/code><\/pre>\n<p>  <\/p>\n<h4 id=\"operatory-sravneniya\">\u041e\u043f\u0435\u0440\u0430\u0442\u043e\u0440\u044b \u0441\u0440\u0430\u0432\u043d\u0435\u043d\u0438\u044f<\/h4>\n<p>  <\/p>\n<p><code>== != &lt; > &lt;= >=<\/code><\/p>\n<p>  <\/p>\n<pre><code class=\"rust\">let a = 1; let b = 2;  let c = a == b; \/\/ false let d = a != b; \/\/ true let e = a &lt; b; \/\/ true let f = a > b; \/\/ false let g = a &lt;= a; \/\/ true let h = a >= a; \/\/ true  let i = true > false; \/\/ true let j = 'a' > 'A'; \/\/ true<\/code><\/pre>\n<p>  <\/p>\n<h4 id=\"logicheskie-operatory\">\u041b\u043e\u0433\u0438\u0447\u0435\u0441\u043a\u0438\u0435 \u043e\u043f\u0435\u0440\u0430\u0442\u043e\u0440\u044b<\/h4>\n<p>  <\/p>\n<p><code>! &amp;&amp; ||<\/code><\/p>\n<p>  <\/p>\n<pre><code class=\"rust\">let a = true; let b = false;  let c = !a; \/\/ false let d = a &amp;&amp; b; \/\/ false let e = a || b; \/\/ true<\/code><\/pre>\n<p>  <\/p>\n<p>\u0412 \u0446\u0435\u043b\u043e\u0447\u0438\u0441\u043b\u0435\u043d\u043d\u044b\u0445 \u0442\u0438\u043f\u0430\u0445 <code>!<\/code> \u0438\u043d\u0432\u0435\u0440\u0442\u0438\u0440\u0443\u0435\u0442 \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u044b\u0435 \u0431\u0438\u0442\u044b \u0432 \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u0438\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u0432 \u0432\u0438\u0434\u0435 \u0434\u043e\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f \u0434\u043e \u0434\u0432\u0443\u0445 (two\u2019s complement representation).<\/p>\n<p>  <\/p>\n<pre><code class=\"rust\">let a = !-2; \/\/ 1 let b = !-1; \/\/ 0 let c = !0; \/\/ -1 let d = !1; \/\/ -2<\/code><\/pre>\n<p>  <\/p>\n<h4 id=\"pobitovye-operatory\">\u041f\u043e\u0431\u0438\u0442\u043e\u0432\u044b\u0435 \u043e\u043f\u0435\u0440\u0430\u0442\u043e\u0440\u044b<\/h4>\n<p>  <\/p>\n<p><code>&amp; | ^ &lt;&lt; >><\/code><\/p>\n<p>  <\/p>\n<pre><code class=\"rust\">let a = 1; let b = 2;  let c = a &amp; b;  \/\/ 0  (01 &amp;&amp; 10 -> 00) let d = a | b;  \/\/ 3  (01 || 10 -> 11) let e = a ^ b;  \/\/ 3  (01 != 10 -> 11) let f = a &lt;&lt; b; \/\/ 4  (\u0434\u043e\u0431\u0430\u0432\u043b\u044f\u0435\u043c b \u043d\u0443\u043b\u0435\u0439 \u0432 \u043a\u043e\u043d\u0435\u0446 a -> '01'+'00' -> 100) let g = a >> b; \/\/0  (\u0443\u0434\u0430\u043b\u044f\u0435\u043c b \u0431\u0438\u0442\u043e\u0432 \u0441 \u043a\u043e\u043d\u0446\u0430 a -> '01'-'10' -> 0)<\/code><\/pre>\n<p>  <\/p>\n<h4 id=\"operatory-prisvaivaniya-i-sostavnye-compound-operatory-prisvaivaniya\">\u041e\u043f\u0435\u0440\u0430\u0442\u043e\u0440\u044b \u043f\u0440\u0438\u0441\u0432\u0430\u0438\u0432\u0430\u043d\u0438\u044f \u0438 \u0441\u043e\u0441\u0442\u0430\u0432\u043d\u044b\u0435 (compound) \u043e\u043f\u0435\u0440\u0430\u0442\u043e\u0440\u044b \u043f\u0440\u0438\u0441\u0432\u0430\u0438\u0432\u0430\u043d\u0438\u044f<\/h4>\n<p>  <\/p>\n<pre><code class=\"rust\">let mut a = 2;  a += 5; \/\/ 2 + 5 = 7 a -= 2; \/\/ 7 - 2 = 5 a *= 5; \/\/ 5 * 5 = 25 a \/= 2; \/\/ 25 \/ 2 = 12 not 12.5 a %= 5; \/\/ 12 % 5 = 2  a &amp;= 2; \/\/ 10 &amp;&amp; 10 -> 10 -> 2 a |= 5; \/\/ 010 || 101 -> 111 -> 7 a ^= 2; \/\/ 111 != 010 -> 101 -> 5 a &lt;&lt;= 1; \/\/ '101'+'0' -> 1010 -> 10 a >>= 2; \/\/ '1010'-'10' -> 10 -> 2<\/code><\/pre>\n<p>  <\/p>\n<h4 id=\"operator-preobrazovaniya-tipa-type-casting\">\u041e\u043f\u0435\u0440\u0430\u0442\u043e\u0440 \u043f\u0440\u0435\u043e\u0431\u0440\u0430\u0437\u043e\u0432\u0430\u043d\u0438\u044f \u0442\u0438\u043f\u0430 (type casting)<\/h4>\n<p>  <\/p>\n<p><code>as<\/code><\/p>\n<p>  <\/p>\n<pre><code class=\"rust\">let a = 15; let b = (a as f64) \/ 2.0; \/\/ 7.5<\/code><\/pre>\n<p>  <\/p>\n<h4 id=\"operatory-zaimstvovaniya-i-razymenovaniya\">\u041e\u043f\u0435\u0440\u0430\u0442\u043e\u0440\u044b \u0437\u0430\u0438\u043c\u0441\u0442\u0432\u043e\u0432\u0430\u043d\u0438\u044f \u0438 \u0440\u0430\u0437\u044b\u043c\u0435\u043d\u043e\u0432\u0430\u043d\u0438\u044f<\/h4>\n<p>  <\/p>\n<p><code>&amp; &amp;mut *<\/code><\/p>\n<p>  <\/p>\n<p>\u041e\u043f\u0435\u0440\u0430\u0442\u043e\u0440\u044b <code>&amp;<\/code> \u0438 <code>&amp;mut<\/code> \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044e\u0442\u0441\u044f \u0434\u043b\u044f \u0437\u0430\u0438\u043c\u0441\u0442\u0432\u043e\u0432\u0430\u043d\u0438\u044f (borrow), \u0430 \u043e\u043f\u0435\u0440\u0430\u0442\u043e\u0440 <code>*<\/code> \u2014 \u0434\u043b\u044f \u0440\u0430\u0437\u044b\u043c\u0435\u043d\u043e\u0432\u0430\u043d\u0438\u044f (dereference). \u041c\u044b \u043e\u0431\u0441\u0443\u0434\u0438\u043c \u0438\u0445 \u043f\u043e\u0437\u0436\u0435.<\/p>\n<p>  <\/p>\n<h4 id=\"pered-tem-kak-dvigatsya-dalshe-3\">\u041f\u0435\u0440\u0435\u0434 \u0442\u0435\u043c, \u043a\u0430\u043a \u0434\u0432\u0438\u0433\u0430\u0442\u044c\u0441\u044f \u0434\u0430\u043b\u044c\u0448\u0435&#8230;<\/h4>\n<p>  <\/p>\n<ul>\n<li>\u041e\u0431\u044a\u0435\u0434\u0438\u043d\u0435\u043d\u0438\u0435\/\u0441\u043e\u0435\u0434\u0438\u043d\u0435\u043d\u0438\u0435 (concatenation) \u0441\u0442\u0440\u043e\u043a:<\/li>\n<\/ul>\n<p>  <\/p>\n<pre><code class=\"rust\">let (s1, s2) = (\"some\", \"thing\"); \/\/ \u043e\u0431\u0435 \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0435 \u0438\u043c\u0435\u044e\u0442 \u0442\u0438\u043f `&amp;str`  \/\/ \u0422\u0438\u043f\u0430\u043c\u0438 \u043e\u0441\u0442\u0430\u043b\u044c\u043d\u044b\u0445 \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0445 \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f `String` let s = String::from(s1) + s2; \/\/ String + &amp;str  let mut s = String::from(s1); \/\/ String s.push_str(s2); \/\/ + &amp;str  let s = format!(\"{}{}\", s1, s2); \/\/ &amp;str\/String + &amp;str\/String  let s = [s1, s2].concat(); \/\/ `&amp;str` \u0438\u043b\u0438 \u043c\u0430\u0441\u0441\u0438\u0432 `String`<\/code><\/pre>\n<p>  <\/p>\n<h2 id=\"potoki-upravleniya\">\u041f\u043e\u0442\u043e\u043a\u0438 \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u044f<\/h2>\n<p>  <\/p>\n<h4 id=\"if-else\">if else<\/h4>\n<p>  <\/p>\n<ul>\n<li><code>if<\/code><\/li>\n<\/ul>\n<p>  <\/p>\n<pre><code class=\"rust\">let age = 13;  if age &lt; 18 {     println!(\"Hello, child!\"); \/\/ \u043a\u043e\u0434 \u043f\u0435\u0447\u0430\u0442\u0430\u0435\u0442 \u044d\u0442\u043e }<\/code><\/pre>\n<p>  <\/p>\n<ul>\n<li><code>if<\/code> \u0438 <code>else<\/code><\/li>\n<\/ul>\n<p>  <\/p>\n<pre><code class=\"rust\">let i = 7;  if i % 2 == 0 {     println!(\"\u0427\u0435\u0442\u043d\u043e\u0435\"); } else {     println!(\"\u041d\u0435\u0447\u0435\u0442\u043d\u043e\u0435\"); \/\/ \u043a\u043e\u0434 \u043f\u0435\u0447\u0430\u0442\u0430\u0435\u0442 \u044d\u0442\u043e }<\/code><\/pre>\n<p>  <\/p>\n<ul>\n<li><code>let<\/code><\/li>\n<\/ul>\n<p>  <\/p>\n<pre><code class=\"rust\">let age: u8 = 13; let is_below_eighteen = if age &lt; 18 { true } else { false }; \/\/ true<\/code><\/pre>\n<p>  <\/p>\n<ul>\n<li>\u0435\u0449\u0435 \u043f\u0440\u0438\u043c\u0435\u0440\u044b<\/li>\n<\/ul>\n<p>  <\/p>\n<pre><code class=\"rust\">\/\/ \u041f\u0440\u043e\u0441\u0442\u043e\u0439 \u043f\u0440\u0438\u043c\u0435\u0440 let team_size = 7;  if team_size &lt; 5 {     println!(\"Small\"); } else if team_size &lt; 10 {     println!(\"Medium\"); \/\/ \u043a\u043e\u0434 \u043f\u0435\u0447\u0430\u0442\u0430\u0435\u0442 \u044d\u0442\u043e } else {     println!(\"Large\"); }<\/code><\/pre>\n<p>  <\/p>\n<pre><code class=\"rust\">\/\/ \u041e\u0442\u0440\u0435\u0444\u0430\u043a\u0442\u043e\u0440\u0438\u043c \u043f\u0440\u0435\u0434\u044b\u0434\u0443\u0449\u0438\u0439 \u043f\u0440\u0438\u043c\u0435\u0440 let team_size = 7; let team_size_in_text;  if team_size &lt; 5 {     team_size_in_text = \"Small\"; } else if team_size &lt; 10 {     team_size_in_text = \"Medium\"; } else {     team_size_in_text = \"Large\"; }  println!(\"Current team size : {}\", team_size_in_text); \/\/ Current team size : Medium<\/code><\/pre>\n<p>  <\/p>\n<pre><code class=\"rust\">\/\/ \u0415\u0449\u0435 \u0440\u0430\u0437 \u043e\u0442\u0440\u0435\u0444\u0430\u043a\u0442\u043e\u0440\u0438\u043c let team_size = 7; let team_size = if team_size &lt; 5 {     \"Small\" \/\/ \u2b50\ufe0f no ; } else if team_size &lt; 10 {     \"Medium\" } else {     \"Large\" };  println!(\"Current team size : {}\", team_size); \/\/ Current team size : Medium<\/code><\/pre>\n<p>  <\/p>\n<p>\u0412 \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u0435\u043c \u043f\u0440\u0438\u043c\u0435\u0440\u0435 \u0442\u0438\u043f \u0432\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u043c\u044b\u0445 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0439 \u0434\u043e\u043b\u0436\u0435\u043d \u0431\u044b\u0442\u044c \u043e\u0434\u0438\u043d\u0430\u043a\u043e\u0432\u044b\u043c.<\/p>\n<p>  <\/p>\n<h4 id=\"match\">match<\/h4>\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 \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u0442\u044c \u043f\u043e\u0438\u0441\u043a \u0441\u043e\u0432\u043f\u0430\u0434\u0435\u043d\u0438\u044f (\u0441\u043e\u043f\u043e\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u0438\u0435 \u0441 \u043e\u0431\u0440\u0430\u0437\u0446\u043e\u043c) (pattern matching):<\/p>\n<p>  <\/p>\n<pre><code class=\"rust\">let tshirt_width = 20; let tshirt_size = match tshirt_width {     16 => \"S\", \/\/ \u043f\u0440\u043e\u0432\u0435\u0440\u044f\u0435\u0442 16     17 | 18 => \"M\", \/\/ \u043f\u0440\u043e\u0432\u0435\u0440\u044f\u0435\u0442 17 \u0438 18     19 ..= 21 => \"L\", \/\/ \u043f\u0440\u043e\u0432\u0435\u0440\u044f\u0435\u0442 \u043e\u0442 19 \u0434\u043e 21 (\u0432\u043a\u043b\u044e\u0447\u0438\u0442\u0435\u043b\u044c\u043d\u043e)     22 => \"XL\",     _ => \"Not Available\", };  println!(\"{}\", tshirt_size); \/\/ L<\/code><\/pre>\n<p>  <\/p>\n<pre><code class=\"rust\">let is_allowed = false; let list_type = match is_allowed {     true => \"Full\",     false => \"Restricted\"     \/\/ \u0414\u0435\u0444\u043e\u043b\u0442\u043d\u043e\u0435\/_ \u0443\u0441\u043b\u043e\u0432\u0438\u0435 \u043c\u043e\u0436\u0435\u0442 \u0431\u044b\u0442\u044c \u043f\u0440\u043e\u043f\u0443\u0449\u0435\u043d\u043e,     \/\/ \u043f\u043e\u0441\u043a\u043e\u043b\u044c\u043a\u0443 `is_allowed` \u0438\u043c\u0435\u0435\u0442 \u043b\u043e\u0433\u0438\u0447\u0435\u0441\u043a\u043e\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u0438     \/\/ \u0432\u0441\u0435 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u0438 \u0438\u0441\u0447\u0435\u0440\u043f\u0430\u043d\u044b };  println!(\"{}\", list_type); \/\/ Restricted<\/code><\/pre>\n<p>  <\/p>\n<pre><code class=\"rust\">let marks_paper_a: u8 = 25; let marks_paper_b: u8 = 30;  let output = match (marks_paper_a, marks_paper_b) {     (50, 50) => \"Full marks for both papers\",     (50, _) => \"Full marks for paper A\",     (_, 50) => \"Full marks for paper B\",     (x, y) if x > 25 &amp;&amp; y > 25 => \"Good\",     (_, _) => \"Work hard\" };  println!(\"{}\", output); \/\/ Work hard<\/code><\/pre>\n<p>  <\/p>\n<h4 id=\"loop\">loop<\/h4>\n<p>  <\/p>\n<p>\u041a\u043b\u044e\u0447\u0435\u0432\u043e\u0435 \u0441\u043b\u043e\u0432\u043e <code>loop<\/code> \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u043e\u0431\u044a\u044f\u0432\u043b\u044f\u0442\u044c \u0431\u0435\u0441\u043a\u043e\u043d\u0435\u0447\u043d\u044b\u0435 \u0446\u0438\u043a\u043b\u044b (\u043f\u043e\u0445\u043e\u0436\u0435 \u043d\u0430 <code>while true<\/code>):<\/p>\n<p>  <\/p>\n<pre><code class=\"rust\">loop {     println!(\"Loop forever!\"); }<\/code><\/pre>\n<p>  <\/p>\n<pre><code class=\"rust\">\/\/ \u0414\u043b\u044f \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u044f \u0446\u0438\u043a\u043b\u043e\u043c \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044e\u0442\u0441\u044f \u043a\u043b\u044e\u0447\u0435\u0432\u044b\u0435 \u0441\u043b\u043e\u0432\u0430 `break` \u0438 `continue` let mut a = 0;  loop {     if a == 0 {         println!(\"Skip Value : {}\", a);         a += 1;         \/\/ \u041f\u0440\u043e\u043f\u0443\u0441\u043a\u0430\u0435\u043c \u0438\u0442\u0435\u0440\u0430\u0446\u0438\u044e         continue;     } else if a == 2 {         println!(\"Break At : {}\", a);         \/\/ \u041f\u0440\u0435\u0440\u044b\u0432\u0430\u0435\u043c \u0446\u0438\u043a\u043b         break;     }      println!(\"Current Value : {}\", a);     a += 1; }<\/code><\/pre>\n<p>  <\/p>\n<pre><code class=\"rust\">\/\/ \u0414\u043b\u044f \u0438\u043c\u0435\u043d\u043e\u0432\u0430\u043d\u0438\u044f \u0446\u0438\u043a\u043b\u043e\u0432 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044e\u0442\u0441\u044f \u043c\u0435\u0442\u043a\u0438 (labels) let mut b1 = 1;  'outer_loop: loop { \/\/ \u0443\u0441\u0442\u0430\u043d\u0430\u0432\u043b\u0438\u0432\u0430\u0435\u043c \u043c\u0435\u0442\u043a\u0443 `outer_loop`   let mut b2 = 1;    'inner_loop: loop {     println!(\"Current Value : [{}][{}]\", b1, b2);      if b1 == 2 &amp;&amp; b2 == 2 {         break 'outer_loop; \/\/ \u043f\u0440\u0435\u0440\u044b\u0432\u0430\u0435\u043c `outer_loop`     } else if b2 == 5 {         break;     }      b2 += 1;   }    b1 += 1; }<\/code><\/pre>\n<p>  <\/p>\n<h4 id=\"while\">while<\/h4>\n<p>  <\/p>\n<pre><code class=\"rust\">let mut a = 1;  while a &lt;= 10 {     println!(\"Current value : {}\", a);     a += 1; \/\/ \u0432 Rust \u043e\u0442\u0441\u0443\u0442\u0441\u0442\u0432\u0443\u044e\u0442 \u043e\u043f\u0435\u0440\u0430\u0442\u043e\u0440\u044b `++` \u0438 `--` }<\/code><\/pre>\n<p>  <\/p>\n<pre><code class=\"rust\">\/\/ `break` \u0438 `continue` let mut b = 0;  while b &lt; 5 {     if b == 0 {         println!(\"Skip value : {}\", b);         b += 1;         continue;     } else if b == 2 {         println!(\"Break At : {}\", b);         break;     }      println!(\"Current value : {}\", b);     b += 1; }<\/code><\/pre>\n<p>  <\/p>\n<pre><code class=\"rust\">\/\/ \u041c\u0435\u0442\u043a\u0438 let mut c1 = 1;  'outer_while: while c1 &lt; 6 { \/\/ \u0443\u0441\u0442\u0430\u043d\u0430\u0432\u043b\u0438\u0432\u0430\u0435\u043c \u043c\u0435\u0442\u043a\u0443 `outer_while`     let mut c2 = 1;      'inner_while: while c2 &lt; 6 {         println!(\"Current Value : [{}][{}]\", c1, c2);         if c1 == 2 &amp;&amp; c2 == 2 { break 'outer_while; } \/\/ \u043f\u0440\u0435\u0440\u044b\u0432\u0430\u0435\u043c `outer_while`         c2 += 1;     }      c1 += 1; }<\/code><\/pre>\n<p>  <\/p>\n<h4 id=\"for\">for<\/h4>\n<p>  <\/p>\n<pre><code class=\"rust\">\/\/ \u043e\u0442 0 \u0434\u043e 10 (\u043d\u0435 \u0432\u043a\u043b\u044e\u0447\u0430\u044f); \u0412 JavaScript \u044d\u0442\u043e \u0432\u044b\u0433\u043b\u044f\u0434\u0438\u0442 \u043a\u0430\u043a `for (let i = 0; i &lt; 10; i++)` for i in 0..10 {   println!(\"Current value : {}\", i); }<\/code><\/pre>\n<p>  <\/p>\n<pre><code class=\"rust\">\/\/ \u043e\u0442 1 \u0434\u043e 10 (\u0432\u043a\u043b\u044e\u0447\u0438\u0442\u0435\u043b\u044c\u043d\u043e); \u0412 JavaScript \u044d\u0442\u043e \u0432\u044b\u0433\u043b\u044f\u0434\u0438\u0442 \u043a\u0430\u043a `for (let i = 1; i &lt;= 10; i++)` for i in 1..=10 {   println!(\"Current value : {}\", i); }<\/code><\/pre>\n<p>  <\/p>\n<pre><code class=\"rust\">\/\/ `break` \u0438 `continue` for b in 0..6 {   if b == 0 {     println!(\"Skip Value : {}\", b);     continue;   } else if b == 2 {     println!(\"Break At : {}\", b);     break;   }    println!(\"Current value : {}\", b); }<\/code><\/pre>\n<p>  <\/p>\n<pre><code class=\"rust\">\/\/ \u041c\u0435\u0442\u043a\u0438 'outer_for: for c1 in 1..6 { \/\/ \u0443\u0441\u0442\u0430\u043d\u0430\u0432\u043b\u0438\u0432\u0430\u0435\u043c \u043c\u0435\u0442\u043a\u0443 `outer_for`    'inner_for: for c2 in 1..6 {     println!(\"Current Value : [{}][{}]\", c1, c2);     if c1 == 2 &amp;&amp; c2 == 2 { break 'outer_for; } \/\/ \u043f\u0440\u0435\u0440\u044b\u0432\u0430\u0435\u043c `outer_for`   }  }<\/code><\/pre>\n<p>  <\/p>\n<pre><code class=\"rust\">\/\/ \u0420\u0430\u0431\u043e\u0442\u0430 \u0441 \u043c\u0430\u0441\u0441\u0438\u0432\u0430\u043c\u0438\/\u0432\u0435\u043a\u0442\u043e\u0440\u0430\u043c\u0438 let group : [&amp;str; 4] = [\"Mark\", \"Larry\", \"Bill\", \"Steve\"];  for n in 0..group.len() { \/\/ group.len() = 4 -> 0..4, \u0432\u043e\u043e\u0431\u0449\u0435 \u043f\u0440\u043e\u0432\u0435\u0440\u044f\u0442\u044c `group.len()` \u043d\u0430 \u043a\u0430\u0436\u0434\u043e\u0439 \u0438\u0442\u0435\u0440\u0430\u0446\u0438\u0438 - \u043f\u043b\u043e\u0445\u0430\u044f \u043f\u0440\u0430\u043a\u0442\u0438\u043a\u0430   println!(\"Current Person : {}\", group[n]); }  for person in group.iter() { \/\/ `group.iter()` \u043f\u0440\u0435\u0432\u0440\u0430\u0449\u0430\u0435\u0442 \u043c\u0430\u0441\u0441\u0438\u0432 \u0432 \u043f\u0440\u043e\u0441\u0442\u043e\u0439 \u0438\u0442\u0435\u0440\u0430\u0442\u043e\u0440   println!(\"Current Person : {}\", person); }<\/code><\/pre>\n<p>  <\/p>\n<h1 id=\"bolshe-chem-osnovy\">\u0411\u043e\u043b\u044c\u0448\u0435, \u0447\u0435\u043c \u043e\u0441\u043d\u043e\u0432\u044b<\/h1>\n<p>  <\/p>\n<h2 id=\"vektory-vectors\">\u0412\u0435\u043a\u0442\u043e\u0440\u044b (vectors)<\/h2>\n<p>  <\/p>\n<p>\u041a\u0430\u043a \u0432\u044b \u043f\u043e\u043c\u043d\u0438\u0442\u0435, \u043c\u0430\u0441\u0441\u0438\u0432 \u2014 \u044d\u0442\u043e \u0441\u043f\u0438\u0441\u043e\u043a \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u043e\u0432 \u043e\u0434\u0438\u043d\u0430\u043a\u043e\u0432\u043e\u0433\u043e \u0442\u0438\u043f\u0430 \u0444\u0438\u043a\u0441\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u043e\u0433\u043e \u0440\u0430\u0437\u043c\u0435\u0440\u0430. \u0414\u0430\u0436\u0435 \u043f\u0440\u0438 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0438 \u043a\u043b\u044e\u0447\u0435\u0432\u043e\u0433\u043e \u0441\u043b\u043e\u0432\u0430 <code>mut<\/code>, \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u043e\u0432 \u043c\u0430\u0441\u0441\u0438\u0432\u0430 \u043d\u0435 \u043c\u043e\u0436\u0435\u0442 \u0431\u044b\u0442\u044c \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u043e. \u0412\u0435\u043a\u0442\u043e\u0440 \u2014 \u044d\u0442\u043e \u0441\u0432\u043e\u0435\u0433\u043e \u0440\u043e\u0434\u0430 \u0434\u0438\u043d\u0430\u043c\u0438\u0447\u0435\u0441\u043a\u0438\u0439 \u043c\u0430\u0441\u0441\u0438\u0432, \u043d\u043e \u0432\u0441\u0435 \u0435\u0433\u043e \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u044b \u0442\u0430\u043a\u0436\u0435 \u0434\u043e\u043b\u0436\u043d\u044b \u0431\u044b\u0442\u044c \u043e\u0434\u0438\u043d\u0430\u043a\u043e\u0432\u043e\u0433\u043e \u0442\u0438\u043f\u0430.<\/p>\n<p>  <\/p>\n<p>\u0412\u0435\u043a\u0442\u043e\u0440 \u0438\u043c\u0435\u0435\u0442 \u043e\u0431\u0449\u0438\u0439 (generic) \u0442\u0438\u043f <code>Vec&lt;T><\/code>. <code>T<\/code> \u2014 \u043b\u044e\u0431\u043e\u0439 \u0442\u0438\u043f, \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u0442\u0438\u043f\u043e\u043c \u0432\u0435\u043a\u0442\u043e\u0440\u0430 32-\u0431\u0438\u0442\u043d\u044b\u0445 \u0446\u0435\u043b\u044b\u0445 \u0447\u0438\u0441\u0435\u043b \u0431\u0443\u0434\u0435\u0442 <code>Vec&lt;i32><\/code>. \u0414\u0430\u043d\u043d\u044b\u0435 \u0432\u0435\u043a\u0442\u043e\u0440\u0430 \u0445\u0440\u0430\u043d\u044f\u0442\u0441\u044f \u0432 \u0434\u0438\u043d\u0430\u043c\u0438\u0447\u0435\u0441\u043a\u0438 \u0432\u044b\u0434\u0435\u043b\u044f\u0435\u043c\u043e\u0439 \u043a\u0443\u0447\u0435.<\/p>\n<p>  <\/p>\n<h4 id=\"sozdanie-pustogo-vektora\">\u0421\u043e\u0437\u0434\u0430\u043d\u0438\u0435 \u043f\u0443\u0441\u0442\u043e\u0433\u043e \u0432\u0435\u043a\u0442\u043e\u0440\u0430<\/h4>\n<p>  <\/p>\n<pre><code class=\"rust\">let mut a = Vec::new(); \/\/ \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u0441\u0442\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u043e\u0433\u043e \u043c\u0435\u0442\u043e\u0434\u0430 `new()` let mut b = vec![]; \/\/ \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u043c\u0430\u043a\u0440\u043e\u0441\u0430 `vec!`<\/code><\/pre>\n<p>  <\/p>\n<h4 id=\"sozdanie-vektora-s-tipom-dannyh\">\u0421\u043e\u0437\u0434\u0430\u043d\u0438\u0435 \u0432\u0435\u043a\u0442\u043e\u0440\u0430 \u0441 \u0442\u0438\u043f\u043e\u043c \u0434\u0430\u043d\u043d\u044b\u0445<\/h4>\n<p>  <\/p>\n<pre><code class=\"rust\">let mut a2: Vec&lt;i32> = Vec::new(); let mut b2: Vec&lt;i32> = vec![]; let mut b3 = vec![1i32, 2, 3]; \/\/ \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u0441\u0443\u0444\u0444\u0438\u043a\u0441\u0430 \u043f\u0435\u0440\u0432\u043e\u0433\u043e \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u0430  let mut b4 = vec![1, 2, 3]; let mut b5: Vec&lt;i32> = vec![1, 2, 3]; let mut b6  = vec![1i32, 2, 3]; let mut b7 = vec![0; 10]; \/\/ \u0434\u0435\u0441\u044f\u0442\u044c \u043d\u0443\u043b\u0435\u0439<\/code><\/pre>\n<p>  <\/p>\n<h4 id=\"dostup-i-izmenenie-dannyh\">\u0414\u043e\u0441\u0442\u0443\u043f \u0438 \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u0435 \u0434\u0430\u043d\u043d\u044b\u0445<\/h4>\n<p>  <\/p>\n<pre><code class=\"rust\">\/\/ \u0414\u043e\u0441\u0442\u0443\u043f \u0438 \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u0435 \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u044e\u0449\u0438\u0445 \u0434\u0430\u043d\u043d\u044b\u0445 let mut c = vec![5, 4, 3, 2, 1]; c[0] = 1; c[1] = 2; \/\/c[6] = 2; \u043e\u0448\u0438\u0431\u043a\u0430 - \u0438\u043d\u0434\u0435\u043a\u0441 \u0437\u0430 \u043f\u0440\u0435\u0434\u0435\u043b\u0430\u043c\u0438 \u0434\u043e\u043f\u0443\u0441\u0442\u0438\u043c\u043e\u0433\u043e \u0434\u0438\u0430\u043f\u0430\u0437\u043e\u043d\u0430 (0..6) println!(\"{:?}\", c); \/\/[1, 2, 3, 2, 1]  \/\/ `push` \u0438 `pop` let mut d: Vec&lt;i32> = Vec::new(); d.push(1); \/\/ [1] : \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u0435\u043c \u044d\u043b\u0435\u043c\u0435\u043d\u0442 \u0432 \u043a\u043e\u043d\u0435\u0446 d.push(2); \/\/ [1, 2] d.pop(); \/\/ [1] : \u0443\u0434\u0430\u043b\u044f\u0435\u043c \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u0438\u0439 \u044d\u043b\u0435\u043c\u0435\u043d\u0442  \/\/ \u0415\u043c\u043a\u043e\u0441\u0442\u044c (capacity) \u0438 \u043f\u043e\u0432\u0442\u043e\u0440\u043d\u043e\u0435 \u0432\u044b\u0434\u0435\u043b\u0435\u043d\u0438\u0435 \u043f\u0430\u043c\u044f\u0442\u0438 (reallocation) let mut e: Vec&lt;i32> = Vec::with_capacity(10); println!(\"Length: {}, Capacity : {}\", e.len(), e.capacity()); \/\/ Length: 0, Capacity : 10  \/\/ \u0414\u043b\u044f \u044d\u0442\u043e\u0433\u043e \u043d\u0435 \u0442\u0440\u0435\u0431\u0443\u0435\u0442\u0441\u044f \u043f\u043e\u0432\u0442\u043e\u0440\u043d\u043e\u0435 \u0432\u044b\u0434\u0435\u043b\u0435\u043d\u0438\u0435 \u043f\u0430\u043c\u044f\u0442\u0438 for i in 0..10 {     e.push(i); } \/\/ \u0410 \u0434\u043b\u044f \u044d\u0442\u043e\u0433\u043e \u0442\u0440\u0435\u0431\u0443\u0435\u0442\u0441\u044f e.push(11);<\/code><\/pre>\n<p>  <\/p>\n<p>\u041f\u043e \u0441\u0443\u0442\u0438, \u0432\u0435\u043a\u0442\u043e\u0440 \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u0442 3 \u0432\u0435\u0449\u0438:<\/p>\n<p>  <\/p>\n<ul>\n<li>\u0443\u043a\u0430\u0437\u0430\u0442\u0435\u043b\u044c \u043d\u0430 \u0434\u0430\u043d\u043d\u044b\u0435 (pointer)<\/li>\n<li>\u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u043e\u0432 (\u0434\u043b\u0438\u043d\u0430 \u2014 length)<\/li>\n<li>\u0435\u043c\u043a\u043e\u0441\u0442\u044c (capacity) \u2014 \u043f\u0440\u043e\u0441\u0442\u0440\u0430\u043d\u0441\u0442\u0432\u043e, \u0434\u043e\u0441\u0442\u0443\u043f\u043d\u043e\u0435 \u0431\u0443\u0434\u0443\u0449\u0438\u043c \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u0430\u043c<\/li>\n<\/ul>\n<p>  <\/p>\n<p>\u0415\u0441\u043b\u0438 \u0434\u043b\u0438\u043d\u0430 \u043d\u0430\u0447\u0438\u043d\u0430\u0435\u0442 \u043f\u0440\u0435\u0432\u044b\u0448\u0430\u0442\u044c \u0435\u043c\u043a\u043e\u0441\u0442\u044c, \u0435\u043c\u043a\u043e\u0441\u0442\u044c \u0443\u0432\u0435\u043b\u0438\u0447\u0438\u0432\u0430\u0435\u0442\u0441\u044f. \u041d\u043e \u044d\u0442\u043e \u043f\u0440\u0438\u0432\u043e\u0434\u0438\u0442 \u043a \u043f\u043e\u0432\u0442\u043e\u0440\u043d\u043e\u043c\u0443 \u0432\u044b\u0434\u0435\u043b\u0435\u043d\u0438\u044e \u043f\u0430\u043c\u044f\u0442\u0438 \u0434\u043b\u044f \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u043e\u0432 (\u0447\u0442\u043e \u043c\u043e\u0436\u0435\u0442 \u0431\u044b\u0442\u044c \u043c\u0435\u0434\u043b\u0435\u043d\u043d\u044b\u043c).<\/p>\n<p>  <\/p>\n<p>\u0422\u0438\u043f \u0434\u0430\u043d\u043d\u044b\u0445 <code>String<\/code> \u2014 \u044d\u0442\u043e \u0432\u0435\u043a\u0442\u043e\u0440 \u0431\u0430\u0439\u0442 \u0432 \u043a\u043e\u0434\u0438\u0440\u043e\u0432\u043a\u0435 UTF-8 (<code>[u8]<\/code>). \u041e\u0434\u043d\u0430\u043a\u043e \u0441\u0438\u043c\u0432\u043e\u043b\u044b \u0441\u0442\u0440\u043e\u043a\u0438 \u043d\u0435 \u0434\u043e\u0441\u0442\u0443\u043f\u043d\u044b \u043f\u043e \u0438\u043d\u0434\u0435\u043a\u0441\u0443 \u0438\u0437-\u0437\u0430 \u043e\u0441\u043e\u0431\u0435\u043d\u043d\u043e\u0441\u0442\u0435\u0439 \u043a\u043e\u0434\u0438\u0440\u043e\u0432\u043a\u0438.<\/p>\n<p>  <\/p>\n<p>\u0412\u0435\u043a\u0442\u043e\u0440\u044b \u043c\u043e\u0433\u0443\u0442 \u0431\u044b\u0442\u044c \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u044b \u0441\u043e\u0432\u043c\u0435\u0441\u0442\u043d\u043e \u0441 \u0438\u0442\u0435\u0440\u0430\u0442\u043e\u0440\u0430\u043c\u0438 3 \u0441\u043f\u043e\u0441\u043e\u0431\u0430\u043c\u0438:<\/p>\n<p>  <\/p>\n<pre><code class=\"rust\">let mut v = vec![1, 2, 3, 4, 5];  for i in &amp;v {     println!(\"\u0421\u0441\u044b\u043b\u043a\u0430 \u043d\u0430 {}\", i); }  for i in &amp;mut v {     println!(\"\u041c\u0443\u0442\u0430\u0431\u0435\u043b\u044c\u043d\u0430\u044f \u0441\u0441\u044b\u043b\u043a\u0430 \u043d\u0430 {}\", i); }  for i in v {     println!(\"\u0417\u0430\u0431\u0438\u0440\u0430\u0435\u0442 \u0432\u043b\u0430\u0434\u0435\u043d\u0438\u0435 \u0432\u0435\u043a\u0442\u043e\u0440\u043e\u043c \u0438 \u0435\u0433\u043e \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u043e\u043c {}\", i); }<\/code><\/pre>\n<p>  <\/p>\n<h2 id=\"struktury-structs\">\u0421\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u044b (structs)<\/h2>\n<p>  <\/p>\n<p>\u0421\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u044b \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044e\u0442\u0441\u044f \u0434\u043b\u044f \u0438\u043d\u043a\u0430\u043f\u0441\u0443\u043b\u044f\u0446\u0438\u0438 \u0441\u0432\u044f\u0437\u0430\u043d\u043d\u044b\u0445 \u0441\u0432\u043e\u0439\u0441\u0442\u0432 \u0432 \u043e\u0434\u0438\u043d \u0443\u043d\u0438\u0444\u0438\u0446\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0439 \u0442\u0438\u043f \u0434\u0430\u043d\u043d\u044b\u0445.<\/p>\n<p>  <\/p>\n<p>\u041f\u043e \u0441\u043e\u0433\u043b\u0430\u0448\u0435\u043d\u0438\u044e \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u044b \u0438\u043c\u0435\u043d\u0443\u044e\u0442\u0441\u044f \u0432 \u0441\u0442\u0438\u043b\u0435 <code>PascalCase<\/code>.<\/p>\n<p>  <\/p>\n<p>\u0421\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u0435\u0442 3 \u0432\u0430\u0440\u0438\u0430\u043d\u0442\u0430 \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440:<\/p>\n<p>  <\/p>\n<ol>\n<li>C-\u043f\u043e\u0434\u043e\u0431\u043d\u044b\u0435 (C-like) \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u044b:<br \/> \n<ul>\n<li>\u0440\u0430\u0437\u0434\u0435\u043b\u0435\u043d\u043d\u044b\u0435 \u0437\u0430\u043f\u044f\u0442\u044b\u043c\u0438 \u043f\u0430\u0440\u044b <code>\u043a\u043b\u044e\u0447: \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435<\/code><\/li>\n<li>\u0441\u043f\u0438\u0441\u043e\u043a \u0432 \u0444\u0438\u0433\u0443\u0440\u043d\u044b\u0445 \u0441\u043a\u043e\u0431\u043a\u0430\u0445<\/li>\n<li>\u043f\u043e\u0445\u043e\u0436\u0438 \u043d\u0430 \u043a\u043b\u0430\u0441\u0441\u044b (\u0431\u0435\u0437 \u043c\u0435\u0442\u043e\u0434\u043e\u0432) \u0432 \u041e\u041e\u041f-\u044f\u0437\u044b\u043a\u0430\u0445<\/li>\n<li>\u043f\u043e\u0441\u043a\u043e\u043b\u044c\u043a\u0443 \u043f\u043e\u043b\u044f \u0438\u043c\u0435\u044e\u0442 \u043d\u0430\u0437\u0432\u0430\u043d\u0438\u044f, \u043e\u043d\u0438 \u0434\u043e\u0441\u0442\u0443\u043f\u043d\u044b \u0447\u0435\u0440\u0435\u0437 \u0442\u043e\u0447\u0435\u0447\u043d\u0443\u044e \u043d\u043e\u0442\u0430\u0446\u0438\u044e<\/li>\n<\/ul>\n<\/li>\n<li>\u041a\u043e\u0440\u0442\u0435\u0436\u043d\u044b\u0435 (tuple) \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u044b<br \/> \n<ul>\n<li>\u0440\u0430\u0437\u0434\u0435\u043b\u0435\u043d\u043d\u044b\u0435 \u0437\u0430\u043f\u044f\u0442\u044b\u043c\u0438 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f<\/li>\n<li>\u043a\u0440\u0443\u0433\u043b\u044b\u0435 \u0441\u043a\u043e\u0431\u043a\u0438, \u043a\u0430\u043a \u0443 \u043a\u043e\u0440\u0442\u0435\u0436\u0435\u0439<\/li>\n<li>\u043f\u043e\u0445\u043e\u0436\u0438 \u043d\u0430 \u0438\u043c\u0435\u043d\u043e\u0432\u0430\u043d\u043d\u044b\u0435 \u043a\u043e\u0440\u0442\u0435\u0436\u0438<\/li>\n<\/ul>\n<\/li>\n<li>\u041f\u0443\u0441\u0442\u044b\u0435 (unit) \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u044b<br \/> \n<ul>\n<li>\u043d\u0435 \u0438\u043c\u0435\u044e\u0442 \u0447\u043b\u0435\u043d\u043e\u0432<\/li>\n<li>\u043e\u043f\u0440\u0435\u0434\u0435\u043b\u044f\u044e\u0442 \u043d\u043e\u0432\u044b\u0439 \u0442\u0438\u043f, \u043f\u043e\u0445\u043e\u0436\u0438\u0439 \u043d\u0430 \u043f\u0443\u0441\u0442\u043e\u0439 \u043a\u043e\u0440\u0442\u0435\u0436 (<code>()<\/code>)<\/li>\n<li>\u0440\u0435\u0434\u043a\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044e\u0442\u0441\u044f, \u043f\u043e\u043b\u0435\u0437\u043d\u044b \u0432 \u0434\u0436\u0435\u043d\u0435\u0440\u0438\u043a\u0430\u0445 (generics)<\/li>\n<\/ul>\n<\/li>\n<\/ol>\n<p>  <\/p>\n<p>\u0413\u043e\u0432\u043e\u0440\u044f \u043e\u0431 \u041e\u041e\u041f \u0432 <code>Rust<\/code>, \u0441\u043b\u0435\u0434\u0443\u0435\u0442 \u043e\u0442\u043c\u0435\u0442\u0438\u0442\u044c, \u0447\u0442\u043e \u0430\u0442\u0440\u0438\u0431\u0443\u0442\u044b \u0438 \u043c\u0435\u0442\u043e\u0434\u044b \u043e\u0431\u044a\u0435\u043a\u0442\u043e\u0432 \u0440\u0430\u0437\u043c\u0435\u0449\u0430\u044e\u0442\u0441\u044f \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u043e \u0432 \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0430\u0445 \u0438 \u0442\u0440\u0435\u0439\u0442\u0430\u0445 (traits). \u0421\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u044b \u0441\u043e\u0434\u0435\u0440\u0436\u0430\u0442 \u0442\u043e\u043b\u044c\u043a\u043e \u0430\u0442\u0440\u0438\u0431\u0443\u0442\u044b, \u0442\u0440\u0435\u0439\u0442\u044b \u2014 \u0442\u043e\u043b\u044c\u043a\u043e \u043c\u0435\u0442\u043e\u0434\u044b. \u041e\u043d\u0438 \u043e\u0431\u044a\u0435\u0434\u0438\u043d\u044f\u044e\u0442\u0441\u044f \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e <code>impl<\/code> (\u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0439). \u041c\u044b \u043e\u0431\u0441\u0443\u0434\u0438\u043c \u044d\u0442\u043e \u043f\u043e\u0437\u0436\u0435.<\/p>\n<p>  <\/p>\n<h4 id=\"c-podobnye-struktury\">C-\u043f\u043e\u0434\u043e\u0431\u043d\u044b\u0435 \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u044b<\/h4>\n<p>  <\/p>\n<pre><code class=\"rust\">\/\/ \u041e\u0431\u044a\u044f\u0432\u043b\u0435\u043d\u0438\u0435 \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u044b struct Color {     red: u8,     green: u8,     blue: u8 }  fn main() {   \/\/ \u0421\u043e\u0437\u0434\u0430\u043d\u0438\u0435 \u044d\u043a\u0437\u0435\u043c\u043f\u043b\u044f\u0440\u0430   let black = Color { red: 0, green: 0, blue: 0 };    \/\/ \u0414\u043e\u0441\u0442\u0443\u043f \u043a \u043f\u043e\u043b\u044f\u043c \u0447\u0435\u0440\u0435\u0437 \u0442\u043e\u0447\u043a\u0438   println!(\"Black = rgb({}, {}, {})\", black.red, black.green, black.blue); \/\/ Black = rgb(0, 0, 0)    \/\/ \u0421\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u044b \u044f\u0432\u043b\u044f\u044e\u0442\u0441\u044f \u0438\u043c\u043c\u0443\u0442\u0430\u0431\u0435\u043b\u044c\u043d\u044b\u043c\u0438 \u043f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e,   \/\/ \u043a\u043b\u044e\u0447\u0435\u0432\u043e\u0435 \u0441\u043b\u043e\u0432\u043e `mut` \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u0441\u0434\u0435\u043b\u0430\u0442\u044c \u0438\u0445 \u043c\u0443\u0442\u0430\u0431\u0435\u043b\u044c\u043d\u044b\u043c\u0438.   \/\/ \u042d\u0442\u043e \u043d\u0435 \u043e\u0442\u043d\u043e\u0441\u0438\u0442\u0441\u044f \u043a \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u0443 \u0438\u043b\u0438 \u0442\u0438\u043f\u0443 \u043f\u043e\u043b\u0435\u0439   let mut link_color = Color { red: 0, green: 0, blue: 255 };   link_color.blue = 238;   println!(\"Link Color = rgb({}, {}, {})\", link_color.red, link_color.green, link_color.blue); \/\/Link Color = rgb(0, 0, 238)    \/\/ \u041a\u043e\u043f\u0438\u0440\u0443\u0435\u043c \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u044b \u0438\u0437 \u0434\u0440\u0443\u0433\u043e\u0433\u043e \u044d\u043a\u0437\u0435\u043c\u043f\u043b\u044f\u0440\u0430   let blue = Color { blue: 255, ..link_color };   println!(\"Blue = rgb({}, {}, {})\", blue.red, blue.green, blue.blue); \/\/ Blue = rgb(0, 0, 255)    \/\/ \u0414\u0435\u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0438\u0440\u0443\u0435\u043c \u044d\u043a\u0437\u0435\u043c\u043f\u043b\u044f\u0440 \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u043f\u0440\u0438\u0432\u044f\u0437\u043a\u0438 `let`.   \/\/ \u042d\u0442\u043e \u043d\u0435 \u0443\u043d\u0438\u0447\u0442\u043e\u0436\u0430\u0435\u0442 `blue`   let Color { red: r, green: g, blue: b } = blue;   println!(\"Blue = rgb({}, {}, {})\", r, g, b); \/\/ Blue = rgb(0, 0, 255)    \/\/ \u0421\u043e\u0437\u0434\u0430\u0435\u043c \u044d\u043a\u0437\u0435\u043c\u043f\u043b\u044f\u0440 \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u0444\u0443\u043d\u043a\u0446\u0438\u0438   let midnightblue = get_midnightblue_color();   println!(\"Midnight Blue = rgb({}, {}, {})\", midnightblue.red, midnightblue.green, midnightblue.blue); \/\/ Midnight Blue = rgb(25, 25, 112)    \/\/ \u0414\u0435\u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0438\u0440\u0443\u0435\u043c \u044d\u043a\u0437\u0435\u043c\u043f\u043b\u044f\u0440 \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u043f\u0440\u0438\u0432\u044f\u0437\u043a\u0438 `let`.   let Color { red: r, green: g, blue: b } = get_midnightblue_color();   println!(\"Midnight Blue = rgb({}, {}, {})\", r, g, b); \/\/ Midnight Blue = rgb(25, 25, 112) }  fn get_midnightblue_color() -> Color {     Color {red: 25, green: 25, blue: 112} }<\/code><\/pre>\n<p>  <\/p>\n<h4 id=\"kortezhnye-struktury\">\u041a\u043e\u0440\u0442\u0435\u0436\u043d\u044b\u0435 \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u044b<\/h4>\n<p>  <\/p>\n<p>\u041a\u043e\u0433\u0434\u0430 \u043a\u043e\u0440\u0442\u0435\u0436\u043d\u0430\u044f \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0430 \u0441\u043e\u0434\u0435\u0440\u0436\u0438\u0442 \u0442\u043e\u043b\u044c\u043a\u043e \u043e\u0434\u0438\u043d \u044d\u043b\u0435\u043c\u0435\u043d\u0442, \u043c\u044b \u043d\u0430\u0437\u044b\u0432\u0430\u0435\u043c \u0435\u0435 \u043f\u0430\u0442\u0442\u0435\u0440\u043d\u043e\u043c newtype (newtype pattern), \u043f\u043e\u0442\u043e\u043c\u0443 \u0447\u0442\u043e \u0442\u0430\u043a\u0430\u044f \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0430 \u043f\u043e\u043c\u043e\u0433\u0430\u0435\u0442 \u0441\u043e\u0437\u0434\u0430\u0432\u0430\u0442\u044c \u043d\u043e\u0432\u044b\u0435 \u0442\u0438\u043f\u044b.<\/p>\n<p>  <\/p>\n<pre><code class=\"rust\">struct Color(u8, u8, u8); struct Kilometers(i32);  fn main() {   \/\/ \u0421\u043e\u0437\u0434\u0430\u0435\u043c \u043d\u043e\u0432\u044b\u0439 \u044d\u043a\u0437\u0435\u043c\u043f\u043b\u044f\u0440   let black = Color(0, 0, 0);    \/\/ \u0414\u0435\u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0438\u0440\u0443\u0435\u043c \u044d\u043a\u0437\u0435\u043c\u043f\u043b\u044f\u0440 \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u043f\u0440\u0438\u0432\u044f\u0437\u043a\u0438 `let`.   \/\/ \u042d\u0442\u043e \u043d\u0435 \u0440\u0430\u0437\u0440\u0443\u0448\u0430\u0435\u0442 `black`   let Color(r, g, b) = black;   println!(\"Black = rgb({}, {}, {})\", r, g, b); \/\/ Black = rgb(0, 0, 0);    \/\/ Newtype pattern   let distance = Kilometers(20);   \/\/ \u0414\u0435\u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0438\u0440\u0443\u0435\u043c \u044d\u043a\u0437\u0435\u043c\u043f\u043b\u044f\u0440 \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u043f\u0440\u0438\u0432\u044f\u0437\u043a\u0438 `let`.   let Kilometers(distance_in_km) = distance;   println!(\"The distance: {} km\", distance_in_km); \/\/ The distance: 20 km }<\/code><\/pre>\n<p>  <\/p>\n<h4 id=\"pustye-struktury\">\u041f\u0443\u0441\u0442\u044b\u0435 \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u044b<\/h4>\n<p>  <\/p>\n<p>\u0421\u0430\u043c\u0438 \u043f\u043e \u0441\u0435\u0431\u0435 \u043e\u043d\u0438 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044e\u0442\u0441\u044f \u0440\u0435\u0434\u043a\u043e, \u043d\u043e \u043c\u043e\u0433\u0443\u0442 \u0431\u044b\u0442\u044c \u043f\u043e\u043b\u0435\u0437\u043d\u044b\u043c\u0438 \u0432 \u0441\u043e\u0447\u0435\u0442\u0430\u043d\u0438\u0438 \u0441 \u0434\u0440\u0443\u0433\u0438\u043c\u0438 \u0432\u0435\u0449\u0430\u043c, \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u043c\u0430\u044f \u0432 \u043f\u0440\u043e\u0435\u043a\u0442\u0435 \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0430 \u043c\u043e\u0436\u0435\u0442 \u0442\u0440\u0435\u0431\u043e\u0432\u0430\u0442\u044c \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u044f \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u044b, \u0440\u0435\u0430\u043b\u0438\u0437\u0443\u044e\u0449\u0438\u0439 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u043d\u044b\u0439 \u0442\u0440\u0435\u0439\u0442 \u0434\u043b\u044f \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u043a\u0438 \u0441\u043e\u0431\u044b\u0442\u0438\u0439. \u0415\u0441\u043b\u0438 \u0432 \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0435 \u043d\u0435 \u043d\u0443\u0436\u043d\u043e \u0445\u0440\u0430\u043d\u0438\u0442\u044c \u0434\u0430\u043d\u043d\u044b\u0435, \u0434\u043b\u044f \u044d\u0442\u043e\u0439 \u0446\u0435\u043b\u0438 \u0432\u043f\u043e\u043b\u043d\u0435 \u043f\u043e\u0434\u043e\u0439\u0434\u0435\u0442 \u043f\u0443\u0441\u0442\u0430\u044f \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0430:<\/p>\n<p>  <\/p>\n<pre><code class=\"rust\">struct Electron;  fn main() {   let x = Electron; }<\/code><\/pre>\n<p>  <\/p>\n<h2 id=\"perechisleniya-enums\">\u041f\u0435\u0440\u0435\u0447\u0438\u0441\u043b\u0435\u043d\u0438\u044f (enums)<\/h2>\n<p>  <\/p>\n<p>\u041f\u0435\u0440\u0435\u0447\u0438\u0441\u043b\u0435\u043d\u0438\u0435 \u2014 \u044d\u0442\u043e \u0435\u0434\u0438\u043d\u0438\u0447\u043d\u044b\u0439 \u0442\u0438\u043f. \u041e\u043d\u043e \u0441\u043e\u0434\u0435\u0440\u0436\u0438\u0442 \u0432\u0430\u0440\u0438\u0430\u043d\u0442\u044b (variants), \u0442.\u0435. \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u044b\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u043f\u0435\u0440\u0435\u0447\u0438\u0441\u043b\u0435\u043d\u0438\u044f, \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440:<\/p>\n<p>  <\/p>\n<pre><code class=\"rust\">enum Day {     Sunday,     Monday,     Tuesday,     Wednesday,     Thursday,     Friday,     Saturday }  \/\/ `Day` - \u044d\u0442\u043e \u043f\u0435\u0440\u0435\u0447\u0438\u0441\u043b\u0435\u043d\u0438\u0435 \/\/ Sunday, Monday, Tuesday, Wednesday, Thursday, Friday, Saturday - \u0432\u0430\u0440\u0438\u0430\u043d\u0442\u044b<\/code><\/pre>\n<p>  <\/p>\n<p>\u0412\u0430\u0440\u0438\u0430\u043d\u0442\u044b \u0434\u043e\u0441\u0442\u0443\u043f\u043d\u044b \u0447\u0435\u0440\u0435\u0437 \u043d\u043e\u0442\u0430\u0446\u0438\u044e <code>::<\/code>, \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, <code>Day::Sunday<\/code>.<\/p>\n<p>  <\/p>\n<p>\u041a\u0430\u0436\u0434\u044b\u0439 \u0432\u0430\u0440\u0438\u0430\u043d\u0442 \u043c\u043e\u0436\u0435\u0442:<\/p>\n<p>  <\/p>\n<ul>\n<li>\u0431\u044b\u0442\u044c \u043f\u0443\u0441\u0442\u044b\u043c (\u043d\u0435 \u0441\u043e\u0434\u0435\u0440\u0436\u0430\u0442\u044c \u0434\u0430\u043d\u043d\u044b\u0445)<\/li>\n<li>\u0441\u043e\u0434\u0435\u0440\u0436\u0430\u0442\u044c \u0443\u043f\u043e\u0440\u044f\u0434\u043e\u0447\u0435\u043d\u043d\u044b\u0435 \u0431\u0435\u0437\u044b\u043c\u044f\u043d\u043d\u044b\u0435 \u0434\u0430\u043d\u043d\u044b\u0435 (\u043a\u043e\u0440\u0442\u0435\u0436\u043d\u044b\u0439 \u0432\u0430\u0440\u0438\u0430\u043d\u0442)<\/li>\n<li>\u0441\u043e\u0434\u0435\u0440\u0436\u0430\u0442\u044c \u0438\u043c\u0435\u043d\u043e\u0432\u0430\u043d\u043d\u044b\u0435 \u0434\u0430\u043d\u043d\u044b\u0435 (\u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u043d\u044b\u0439 \u0432\u0430\u0440\u0438\u0430\u043d\u0442)<\/li>\n<\/ul>\n<p>  <\/p>\n<pre><code class=\"rust\">enum FlashMessage {   Success, \/\/ \u043f\u0443\u0441\u0442\u043e\u0439 (unit) \u0432\u0430\u0440\u0438\u0430\u043d\u0442   Warning{ category: i32, message: String }, \/\/ \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u043d\u044b\u0439 \u0432\u0430\u0440\u0438\u0430\u043d\u0442   Error(String) \/\/ \u043a\u043e\u0440\u0442\u0435\u0436\u043d\u044b\u0439 \u0432\u0430\u0440\u0438\u0430\u043d\u0442 }  fn main() {   let mut form_status = FlashMessage::Success;   print_flash_message(form_status);    form_status = FlashMessage::Warning { category: 2, message: String::from(\"\u041f\u043e\u043b\u0435 X \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u043e\u0431\u044f\u0437\u0430\u0442\u0435\u043b\u044c\u043d\u044b\u043c\") };   print_flash_message(form_status);    form_status = FlashMessage::Error(String::from(\"\u041e\u0448\u0438\u0431\u043a\u0430 \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u044f\"));   print_flash_message(form_status); }  fn print_flash_message(m : FlashMessage) {   \/\/ \u0421\u043e\u043f\u043e\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u0438\u0435 \u0441 \u043e\u0431\u0440\u0430\u0437\u0446\u043e\u043c (pattern matching)   match m {     FlashMessage::Success =>       println!(\"\u0424\u043e\u0440\u043c\u0430 \u0443\u0441\u043f\u0435\u0448\u043d\u043e \u043e\u0442\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0430\"),     FlashMessage::Warning { category, message } => \/\/ \u0434\u0435\u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0438\u0437\u0430\u0446\u0438\u044f, \u043d\u0430\u0437\u0432\u0430\u043d\u0438\u044f \u043f\u043e\u043b\u0435\u0439 \u0434\u043e\u043b\u0436\u043d\u044b \u0441\u043e\u0432\u043f\u0430\u0434\u0430\u0442\u044c       println!(\"\u041f\u0440\u0435\u0434\u0443\u043f\u0440\u0435\u0436\u0434\u0435\u043d\u0438\u0435: {} - {}\", category, message),     FlashMessage::Error(msg) =>       println!(\"\u041e\u0448\u0438\u0431\u043a\u0430: {}\", msg)   } }<\/code><\/pre>\n<p>  <\/p>\n<h2 id=\"dzheneriki-generics\">\u0414\u0436\u0435\u043d\u0435\u0440\u0438\u043a\u0438 (generics)<\/h2>\n<p>  <\/p>\n<p>\u0418\u043d\u043e\u0433\u0434\u0430 \u043f\u0440\u0438 \u043d\u0430\u043f\u0438\u0441\u0430\u043d\u0438\u0438 \u0444\u0443\u043d\u043a\u0446\u0438\u0438 \u0438\u043b\u0438 \u0442\u0438\u043f\u0430 \u0434\u0430\u043d\u043d\u044b\u0445, \u043d\u0430\u043c \u0445\u043e\u0447\u0435\u0442\u0441\u044f, \u0447\u0442\u043e\u0431\u044b \u043e\u043d\u0438 \u0440\u0430\u0431\u043e\u0442\u0430\u043b\u0438 \u0434\u043b\u044f \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u0438\u0445 \u0442\u0438\u043f\u043e\u0432 \u0430\u0440\u0433\u0443\u043c\u0435\u043d\u0442\u043e\u0432. \u0412 <code>Rust<\/code> \u044d\u0442\u043e \u0434\u0435\u043b\u0430\u0435\u0442\u0441\u044f \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u0434\u0436\u0435\u043d\u0435\u0440\u0438\u043a\u043e\u0432.<\/p>\n<p>  <\/p>\n<p>\u0421\u0443\u0442\u044c \u0437\u0430\u043a\u043b\u044e\u0447\u0430\u0435\u0442\u0441\u044f \u0432 \u0442\u043e\u043c, \u0447\u0442\u043e \u0432\u043c\u0435\u0441\u0442\u043e \u043e\u0431\u044a\u044f\u0432\u043b\u0435\u043d\u0438\u044f \u043a\u043e\u043d\u043a\u0440\u0435\u0442\u043d\u043e\u0433\u043e \u0442\u0438\u043f\u0430 \u0434\u0430\u043d\u043d\u044b\u0445, \u043c\u044b \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u043c \u043f\u0440\u043e\u043f\u0438\u0441\u043d\u0443\u044e \u0431\u0443\u043a\u0432\u0443 (\u0438\u0434\u0435\u043d\u0442\u0438\u0444\u0438\u043a\u0430\u0442\u043e\u0440 \u0432 \u0441\u0442\u0438\u043b\u0435 <code>PascalCase<\/code>), \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u0432\u043c\u0435\u0441\u0442\u043e <code>x: u8<\/code> \u043c\u044b \u043f\u0438\u0448\u0435\u043c <code>x: T<\/code>. \u041e\u0434\u043d\u0430\u043a\u043e \u043d\u0430\u043c \u043d\u0443\u0436\u043d\u043e \u0441\u043e\u043e\u0431\u0449\u0438\u0442\u044c \u043a\u043e\u043c\u043f\u0438\u043b\u044f\u0442\u043e\u0440\u0443 \u043e \u0442\u043e\u043c, \u0447\u0442\u043e <code>T<\/code> \u2014 \u044d\u0442\u043e \u043e\u0431\u0449\u0438\u0439 \u0442\u0438\u043f (\u043c\u043e\u0436\u0435\u0442 \u0431\u044b\u0442\u044c \u043b\u044e\u0431\u044b\u043c \u0442\u0438\u043f\u043e\u043c), \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u043c\u044b \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u0435\u043c <code>&lt;T><\/code> \u043f\u043e\u0441\u043b\u0435 \u043d\u0430\u0437\u0432\u0430\u043d\u0438\u044f \u0444\u0443\u043d\u043a\u0446\u0438\u0438, \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440.<\/p>\n<p>  <\/p>\n<h4 id=\"generalizaciya-funkciy\">\u0413\u0435\u043d\u0435\u0440\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044f \u0444\u0443\u043d\u043a\u0446\u0438\u0439<\/h4>\n<p>  <\/p>\n<pre><code class=\"rust\">fn takes_anything&lt;T>(x: T) { \/\/ `x` \u0438\u043c\u0435\u0435\u0442 \u0442\u0438\u043f `T`, `T` - \u044d\u0442\u043e \u043e\u0431\u0449\u0438\u0439 \u0442\u0438\u043f     \/\/ ... }  fn takes_two_of_the_same_things&lt;T>(x: T, y: T) { \/\/ `x` \u0438 `y` \u0438\u043c\u0435\u044e\u0442 \u043e\u0434\u0438\u043d\u0430\u043a\u043e\u0432\u044b\u0439 \u0442\u0438\u043f     \/\/ ... }  fn takes_two_things&lt;T, U>(x: T, y: U) { \/\/ `x` \u0438 `y` \u0438\u043c\u0435\u044e\u0442 \u0440\u0430\u0437\u043d\u044b\u0435 \u0442\u0438\u043f\u044b     \/\/ ... }<\/code><\/pre>\n<p>  <\/p>\n<h4 id=\"generalizaciya-struktur\">\u0413\u0435\u043d\u0435\u0440\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044f \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440<\/h4>\n<p>  <\/p>\n<pre><code class=\"rust\">struct Point&lt;T> {   x: T,   y: T, }  fn main() {   let point_a = Point { x: 0, y: 0 }; \/\/ `T` \u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u0441\u044f `i32`   let point_b = Point { x: 0.0, y: 0.0 }; \/\/ `T` \u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u0441\u044f `f64` }  \/\/ \u041f\u0440\u0438 \u0434\u043e\u0431\u0430\u0432\u043b\u0435\u043d\u0438\u0438 \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438 \u0434\u043b\u044f \u043e\u0431\u0449\u0435\u0439 \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u044b \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440 \u0442\u0438\u043f\u0430 \u0442\u0430\u043a\u0436\u0435 \u0434\u043e\u043b\u0436\u0435\u043d \u0431\u044b\u0442\u044c \u0434\u043e\u0431\u0430\u0432\u043b\u0435\u043d \u043f\u043e\u0441\u043b\u0435 \u043a\u043b\u044e\u0447\u0435\u0432\u043e\u0433\u043e \u0441\u043b\u043e\u0432\u0430 `impl` \/\/   impl&lt;T> Point&lt;T> {<\/code><\/pre>\n<p>  <\/p>\n<h4 id=\"generalizaciya-perechisleniy\">\u0413\u0435\u043d\u0435\u0440\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044f \u043f\u0435\u0440\u0435\u0447\u0438\u0441\u043b\u0435\u043d\u0438\u0439<\/h4>\n<p>  <\/p>\n<pre><code class=\"rust\">enum Option&lt;T> {     Some(T),     None, }  enum Result&lt;T, E> {     Ok(T),     Err(E), }<\/code><\/pre>\n<p>  <\/p>\n<p><a href=\"https:\/\/doc.rust-lang.org\/std\/option\/index.html\">Option<\/a> \u0438 <a href=\"https:\/\/doc.rust-lang.org\/std\/result\/index.html\">Result<\/a> \u2014 \u044d\u0442\u043e \u0441\u043f\u0435\u0446\u0438\u0430\u043b\u044c\u043d\u044b\u0435 \u043e\u0431\u0449\u0438\u0435 \u0442\u0438\u043f\u044b, \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u043d\u044b\u0435 \u0432 \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043d\u043e\u0439 \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0435 <code>Rust<\/code>:<\/p>\n<p>  <\/p>\n<ul>\n<li>\u043e\u043f\u0446\u0438\u043e\u043d\u0430\u043b\u044c\u043d\u043e\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 (<code>Option<\/code>) \u043c\u043e\u0436\u0435\u0442 \u0431\u044b\u0442\u044c \u043d\u0435\u043a\u043e\u0442\u043e\u0440\u044b\u043c \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435\u043c (<code>Some<\/code>) \u0438\u043b\u0438 \u043e\u0442\u0441\u0443\u0442\u0441\u0442\u0432\u043e\u0432\u0430\u0442\u044c (<code>None<\/code>)<\/li>\n<li>\u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442 (<code>Result<\/code>) \u043c\u043e\u0436\u0435\u0442 \u0431\u044b\u0442\u044c \u0443\u0441\u043f\u0435\u0445\u043e\u043c (<code>Ok<\/code>) \u0438\u043b\u0438 \u043e\u0448\u0438\u0431\u043a\u043e\u0439 (<code>Err<\/code>)<\/li>\n<\/ul>\n<p>  <\/p>\n<h4 id=\"primery-ispolzovaniya-option\">\u041f\u0440\u0438\u043c\u0435\u0440\u044b \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u044f <code>Option<\/code><\/h4>\n<p>  <\/p>\n<pre><code class=\"rust\">\/\/ --- fn get_id_by_username(username: &amp;str) -> Option&lt;usize> {     \/\/ \u0415\u0441\u043b\u0438 \u0438\u043c\u044f \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f \u0437\u043d\u0430\u043a\u043e\u043c\u043e \u0441\u0438\u0441\u0442\u0435\u043c\u0435, \u0432\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u043c `userId`         return Some(userId);     \/\/ \u0438\u043d\u0430\u0447\u0435         None }  \/\/ --- struct Task {     title: String,     assignee: Option&lt;Person>, }  \/\/ \u0412\u043c\u0435\u0441\u0442\u043e `Person`, \u043c\u044b \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u043c `Option&lt;Person>`, \/\/ \u043f\u043e\u0441\u043a\u043e\u043b\u044c\u043a\u0443 \u0437\u0430\u0434\u0430\u0447\u0430 \u043c\u043e\u0436\u0435\u0442 \u043d\u0435 \u0431\u044b\u0442\u044c \u043d\u0438\u043a\u043e\u043c\u0443 \u043d\u0430\u0437\u043d\u0430\u0447\u0435\u043d\u0430  \/\/ --- \/\/ \u041f\u0440\u0438 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0438 `Option` \u0432 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435 \u0442\u0438\u043f\u0430 \u0432\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u043c\u043e\u0433\u043e \u0444\u0443\u043d\u043a\u0446\u0438\u0435\u0439 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f, \/\/ \u043c\u044b \u043c\u043e\u0436\u0435\u043c \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c `match` \u0434\u043b\u044f \u043f\u0435\u0440\u0435\u0445\u0432\u0430\u0442\u0430 \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u044e\u0449\u0435\u0433\u043e \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f fn main() {     let username = \"anonymous\";     match get_id_by_username(username) {         None => println!(\"\u041f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044c \u043d\u0435 \u043d\u0430\u0439\u0434\u0435\u043d\"),         Some(i) => println!(\"\u0418\u0434\u0435\u043d\u0442\u0438\u0444\u0438\u043a\u0430\u0442\u043e\u0440 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f: {}\", i)     } }<\/code><\/pre>\n<p>  <\/p>\n<h4 id=\"primery-ispolzovaniya-result\">\u041f\u0440\u0438\u043c\u0435\u0440\u044b \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u044f <code>Result<\/code><\/h4>\n<p>  <\/p>\n<p>\u0422\u0438\u043f <code>Option<\/code> \u2014 \u044d\u0442\u043e \u0441\u043f\u043e\u0441\u043e\u0431, \u043a\u043e\u0442\u043e\u0440\u044b\u043c \u0441\u0438\u0441\u0442\u0435\u043c\u0430 \u0442\u0438\u043f\u043e\u0432 <code>Rust<\/code> \u0432\u044b\u0440\u0430\u0436\u0430\u0435\u0442 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u044c \u043e\u0442\u0441\u0443\u0442\u0441\u0442\u0432\u0438\u044f \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f. \u0422\u0438\u043f <code>Result<\/code> \u2014 \u044d\u0442\u043e \u0441\u043f\u043e\u0441\u043e\u0431, \u043a\u043e\u0442\u043e\u0440\u044b\u043c \u0441\u0438\u0441\u0442\u0435\u043c\u0430 \u0442\u0438\u043f\u043e\u0432 <code>Rust<\/code> \u0432\u044b\u0440\u0430\u0436\u0430\u0435\u0442 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u044c \u043e\u0448\u0438\u0431\u043a\u0438.<\/p>\n<p>  <\/p>\n<pre><code class=\"rust\">\/\/ --- fn get_word_count_from_file(file_name: &amp;str) -> Result&lt;u32, &amp;str> {   \/\/ \u0415\u0441\u043b\u0438 \u0444\u0430\u0439\u043b \u043d\u0435 \u043d\u0430\u0439\u0434\u0435\u043d \u0432 \u0444\u0430\u0439\u043b\u043e\u0432\u043e\u0439 \u0441\u0438\u0441\u0442\u0435\u043c\u0435, \u0432\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u043c \u043e\u0448\u0438\u0431\u043a\u0443     return Err(\"\u0424\u0430\u0439\u043b \u043d\u0435 \u043d\u0430\u0439\u0434\u0435\u043d\")   \/\/ \u0438\u043d\u0430\u0447\u0435, \u0441\u0447\u0438\u0442\u0430\u0435\u043c \u0438 \u0432\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u043c \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u0441\u043b\u043e\u0432     \/\/ let mut word_count: u32 = ...;     Ok(word_count) }  \/\/ --- \/\/ \u0417\u0434\u0435\u0441\u044c \u043c\u044b \u0442\u0430\u043a\u0436\u0435 \u043c\u043e\u0436\u0435\u043c \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c `match` fn main() {     let mut file_name = \"file_a\";     match get_word_count_from_file(file_name) {         Ok(i) => println!(\"\u041a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u0441\u043b\u043e\u0432: {}\", i),         Err(e) => println!(\"\u041e\u0448\u0438\u0431\u043a\u0430: {}\", e)     } }<\/code><\/pre>\n<p>  <\/p>\n<p>\u0414\u043b\u044f <code>Option<\/code> \u0438 <code>Result<\/code> \u0440\u0435\u0430\u043b\u0438\u0437\u043e\u0432\u0430\u043d\u043e \u0431\u043e\u043b\u044c\u0448\u043e\u0435 \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u043f\u043e\u043b\u0435\u0437\u043d\u044b\u0445 \u043c\u0435\u0442\u043e\u0434\u043e\u0432 (\u043f\u043e\u043b\u0438\u0441\u0442\u0430\u0439\u0442\u0435 \u043e\u0444\u0438\u0446\u0438\u0430\u043b\u044c\u043d\u0443\u044e \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u044e).<\/p>\n<p>  <\/p>\n<h2 id=\"realizacii-i-treyty-impls--traits\">\u0420\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438 \u0438 \u0442\u0440\u0435\u0439\u0442\u044b (impls &amp; traits)<\/h2>\n<p>  <\/p>\n<p>\u0420\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438 (impls) \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044e\u0442\u0441\u044f \u0434\u043b\u044f \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u0438\u044f \u043c\u0435\u0442\u043e\u0434\u043e\u0432 \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440 \u0438 \u043f\u0435\u0440\u0435\u0447\u0438\u0441\u043b\u0435\u043d\u0438\u0439.<\/p>\n<p>  <\/p>\n<p>\u0422\u0440\u0435\u0439\u0442\u044b (traits) \u043f\u043e\u0445\u043e\u0436\u0438 \u043d\u0430 \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441\u044b \u0432 \u041e\u041e\u041f-\u044f\u0437\u044b\u043a\u0430\u0445. \u041e\u043d\u0438 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044e\u0442\u0441\u044f \u0434\u043b\u044f \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u0438\u044f \u0444\u0443\u043d\u043a\u0446\u0438\u043e\u043d\u0430\u043b\u044c\u043d\u043e\u0441\u0442\u0438, \u043a\u043e\u0442\u043e\u0440\u0443\u044e \u0434\u043e\u043b\u0436\u0435\u043d \u043f\u0440\u0435\u0434\u043e\u0441\u0442\u0430\u0432\u043b\u044f\u0442\u044c \u0442\u0438\u043f. \u0414\u043b\u044f \u043e\u0434\u043d\u043e\u0433\u043e \u0442\u0438\u043f\u0430 \u043c\u043e\u0436\u0435\u0442 \u0431\u044b\u0442\u044c \u0440\u0435\u0430\u043b\u0438\u0437\u043e\u0432\u0430\u043d\u043e \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u0442\u0440\u0435\u0439\u0442\u043e\u0432.<\/p>\n<p>  <\/p>\n<p>\u0422\u0440\u0435\u0439\u0442\u044b \u0442\u0430\u043a\u0436\u0435 \u043c\u043e\u0433\u0443\u0442 \u0441\u043e\u0434\u0435\u0440\u0436\u0430\u0442\u044c \u0434\u0435\u0444\u043e\u043b\u0442\u043d\u044b\u0435 \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438 \u043c\u0435\u0442\u043e\u0434\u043e\u0432. \u0414\u0435\u0444\u043e\u043b\u0442\u043d\u044b\u0435 \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438 \u043c\u043e\u0433\u0443\u0442 \u043f\u0435\u0440\u0435\u0437\u0430\u043f\u0438\u0441\u044b\u0432\u0430\u0442\u044c\u0441\u044f \u043f\u0440\u0438 \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438 \u0442\u0438\u043f\u043e\u0432.<\/p>\n<p>  <\/p>\n<h4 id=\"realizacii-bez-treytov\">\u0420\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438 \u0431\u0435\u0437 \u0442\u0440\u0435\u0439\u0442\u043e\u0432<\/h4>\n<p>  <\/p>\n<pre><code class=\"rust\">struct Player {     first_name: String,     last_name: String, }  impl Player {     fn full_name(&amp;self) -> String {         format!(\"{} {}\", self.first_name, self.last_name)     } }  fn main() {     let player_1 = Player {         first_name: \"Rafael\".to_string(),         last_name: \"Nadal\".to_string(),     };      println!(\"Player 01: {}\", player_1.full_name()); }  \/\/ \u0422\u0438\u043f \u0438 \u0435\u0433\u043e \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044f \u0434\u043e\u043b\u0436\u043d\u044b \u043d\u0430\u0445\u043e\u0434\u0438\u0442\u044c\u0441\u044f \u0432 \u043e\u0434\u043d\u043e\u043c \u043a\u0440\u0435\u0439\u0442\u0435  \/\/ \u041d\u043e\u0432\u044b\u0435 \u0442\u0440\u0435\u0439\u0442\u044b \u043c\u043e\u0433\u0443\u0442 \u0440\u0435\u0430\u043b\u0438\u0437\u043e\u0432\u044b\u0432\u0430\u0442\u044c\u0441\u044f \u0434\u043b\u044f \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u044e\u0449\u0438\u0445 \u0442\u0438\u043f\u043e\u0432, \/\/ \u0434\u0430\u0436\u0435 \u0434\u043b\u044f \u0442\u0430\u043a\u0438\u0445 \u0442\u0438\u043f\u043e\u0432, \u043a\u0430\u043a i8, f64 \u0438 \u0434\u0440. \/\/ \u0410\u043d\u0430\u043b\u043e\u0433\u0438\u0447\u043d\u044b\u043c \u043e\u0431\u0440\u0430\u0437\u043e\u043c \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u044e\u0449\u0438\u0435 \u0442\u0440\u0435\u0439\u0442\u044b \u043c\u043e\u0433\u0443\u0442 \u0440\u0435\u0430\u043b\u0438\u0437\u043e\u0432\u044b\u0432\u0430\u0442\u044c\u0441\u044f \u0434\u043b\u044f \u043d\u043e\u0432\u044b\u0445 \u0442\u0438\u043f\u043e\u0432. \/\/ \u041d\u043e \u0440\u0435\u0430\u043b\u0438\u0437\u043e\u0432\u044b\u0432\u0430\u0442\u044c \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u044e\u0449\u0438\u0435 \u0442\u0440\u0435\u0439\u0442\u044b \u0434\u043b\u044f \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u044e\u0449\u0438\u0445 \u0442\u0438\u043f\u043e\u0432 \u043d\u0435\u043b\u044c\u0437\u044f.<\/code><\/pre>\n<p>  <\/p>\n<h4 id=\"realizacii-s-treytami-no-bez-defoltnyh-metodov\">\u0420\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438 \u0441 \u0442\u0440\u0435\u0439\u0442\u0430\u043c\u0438, \u043d\u043e \u0431\u0435\u0437 \u0434\u0435\u0444\u043e\u043b\u0442\u043d\u044b\u0445 \u043c\u0435\u0442\u043e\u0434\u043e\u0432<\/h4>\n<p>  <\/p>\n<pre><code class=\"rust\">struct Player {     first_name: String,     last_name: String, }  trait FullName {     fn full_name(&amp;self) -> String; }  impl FullName for Player {     fn full_name(&amp;self) -> String {         format!(\"{} {}\", self.first_name, self.last_name)     } }  fn main() {     let player_2 = Player {         first_name: \"Roger\".to_string(),         last_name: \"Federer\".to_string(),     };      println!(\"Player 02: {}\", player_2.full_name()); }  \/\/ \u0412 \u043e\u0442\u043b\u0438\u0447\u0438\u0435 \u043e\u0442 \u0444\u0443\u043d\u043a\u0446\u0438\u0439, \u0442\u0440\u0435\u0439\u0442\u044b \u043c\u043e\u0433\u0443\u0442 \u0441\u043e\u0434\u0435\u0440\u0436\u0430\u0442\u044c \u043a\u043e\u043d\u0441\u0442\u0430\u043d\u0442\u044b \u0438 \u0442\u0438\u043f\u044b<\/code><\/pre>\n<p>  <\/p>\n<h4 id=\"realizacii-s-treytami-i-defoltnymi-metodami\">\u0420\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438 \u0441 \u0442\u0440\u0435\u0439\u0442\u0430\u043c\u0438 \u0438 \u0434\u0435\u0444\u043e\u043b\u0442\u043d\u044b\u043c\u0438 \u043c\u0435\u0442\u043e\u0434\u0430\u043c\u0438<\/h4>\n<p>  <\/p>\n<pre><code class=\"rust\">trait Foo {     fn bar(&amp;self);     fn baz(&amp;self) { println!(\"We called baz.\"); } }<\/code><\/pre>\n<p>  <\/p>\n<p>\u041a\u0430\u043a \u0432\u0438\u0434\u0438\u0442\u0435, \u043c\u0435\u0442\u043e\u0434\u044b \u043f\u0440\u0438\u043d\u0438\u043c\u0430\u044e\u0442 \u043f\u0435\u0440\u0432\u044b\u0439 \u0441\u043f\u0435\u0446\u0438\u0430\u043b\u044c\u043d\u044b\u0439 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440 \u2014 \u0441\u0430\u043c \u0442\u0438\u043f. \u041e\u043d \u043c\u043e\u0436\u0435\u0442 \u0431\u044b\u0442\u044c <code>self<\/code> (\u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u0432 \u0441\u0442\u0435\u043a\u0435 \u2014 \u0432\u043b\u0430\u0434\u0435\u043d\u0438\u0435), <code>&amp;self<\/code> (\u0441\u0441\u044b\u043b\u043a\u0430 \u043d\u0430 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435) \u0438\u043b\u0438 <code>&amp;mut self<\/code> (\u043c\u0443\u0442\u0430\u0431\u0435\u043b\u044c\u043d\u0430\u044f \u0441\u0441\u044b\u043b\u043a\u0430).<\/p>\n<p>  <\/p>\n<h4 id=\"realizacii-s-associirovannymi-funkciyami\">\u0420\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438 \u0441 \u0430\u0441\u0441\u043e\u0446\u0438\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u043c\u0438 \u0444\u0443\u043d\u043a\u0446\u0438\u044f\u043c\u0438<\/h4>\n<p>  <\/p>\n<p>\u041d\u0435\u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u044f\u0437\u044b\u043a\u0438 \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u044e\u0442 \u0441\u0442\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0438\u0435 \u043c\u0435\u0442\u043e\u0434\u044b. \u0422\u0430\u043a\u0438\u0435 \u043c\u0435\u0442\u043e\u0434\u044b \u0432\u044b\u0437\u044b\u0432\u0430\u044e\u0442\u0441\u044f \u043d\u0430 \u0441\u0430\u043c\u043e\u043c \u043a\u043b\u0430\u0441\u0441\u0435, \u0430 \u043d\u0435 \u043d\u0430 \u0435\u0433\u043e \u044d\u043a\u0437\u0435\u043c\u043f\u043b\u044f\u0440\u0435. \u0412 <code>Rust<\/code> \u0442\u0430\u043a\u0438\u0435 \u043c\u0435\u0442\u043e\u0434\u044b \u043d\u0430\u0437\u044b\u0432\u0430\u044e\u0442\u0441\u044f \u0430\u0441\u0441\u043e\u0446\u0438\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u043c\u0438 \u0444\u0443\u043d\u043a\u0446\u0438\u044f\u043c\u0438 (associated functions). \u041f\u0440\u0438 \u0438\u0445 \u0432\u044b\u0437\u043e\u0432\u0435 \u043d\u0430 \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0435 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f <code>::<\/code> \u0432\u043c\u0435\u0441\u0442\u043e <code>.<\/code>, \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, <code>Person::new(\"Elon Musk Jr\");<\/code>:<\/p>\n<p>  <\/p>\n<pre><code class=\"rust\">struct Player {     first_name: String,     last_name: String, }  impl Player {     \/\/ \u0410\u0441\u0441\u043e\u0446\u0438\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u0430\u044f \u0444\u0443\u043d\u043a\u0446\u0438\u044f - \u043c\u0435\u0442\u043e\u0434 \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u044b\/\u0441\u0442\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0438\u0439 \u043c\u0435\u0442\u043e\u0434     fn new(first_name: String, last_name: String) -> Player {         Player {             first_name: first_name,             last_name: last_name,         }     }      \/\/ \u041c\u0435\u0442\u043e\u0434 \u044d\u043a\u0437\u0435\u043c\u043f\u043b\u044f\u0440\u0430     fn full_name(&amp;self) -> String {         format!(\"{} {}\", self.first_name, self.last_name)     } }  fn main() {     let player_name = Player::new(\"Serena\".to_string(), \"Williams\".to_string()).full_name();     println!(\"Player: {}\", player_name); }  \/\/ \u041c\u044b \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u043c \u043d\u043e\u0442\u0430\u0446\u0438\u044e `::` \u0434\u043b\u044f `new()` \u0438 \u043d\u043e\u0442\u0430\u0446\u0438\u044e `.` \u0434\u043b\u044f `full_name()`  \/\/ \u0412\u043c\u0435\u0441\u0442\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u044f `new()` \u0438 `full_name()` \u043f\u043e-\u043e\u0442\u0434\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u0438, \/\/ \u043c\u044b \u043c\u043e\u0436\u0435\u043c \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0446\u0435\u043f\u043e\u0447\u043a\u0443 \u043c\u0435\u0442\u043e\u0434\u043e\u0432, \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, `player.add_points(2).get_point_count();`<\/code><\/pre>\n<p>  <\/p>\n<h4 id=\"treyty-s-dzhenerikami\">\u0422\u0440\u0435\u0439\u0442\u044b \u0441 \u0434\u0436\u0435\u043d\u0435\u0440\u0438\u043a\u0430\u043c\u0438<\/h4>\n<p>  <\/p>\n<pre><code class=\"rust\">trait From&lt;T> {     fn from(T) -> Self; } impl From&lt;u8> for u16 {     \/\/... } impl From&lt;u8> for u32{     \/\/... }<\/code><\/pre>\n<p>  <\/p>\n<h4 id=\"nasledovanie-treytov\">\u041d\u0430\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u043d\u0438\u0435 \u0442\u0440\u0435\u0439\u0442\u043e\u0432<\/h4>\n<p>  <\/p>\n<pre><code class=\"rust\">trait Person {     fn full_name(&amp;self) -> String; }  trait Employee: Person { \/\/ `Employee` \u043d\u0430\u0441\u043b\u0435\u0434\u0443\u0435\u0442 \u043e\u0442 `Person`     fn job_title(&amp;self) -> String; }  trait ExpatEmployee: Employee + Expat { \/\/ `ExpatEmployee` \u043d\u0430\u0441\u043b\u0435\u0434\u0443\u0435\u0442 \u043e\u0442 `Employee` \u0438 `Expat`     fn additional_tax(&amp;self) -> f64; }<\/code><\/pre>\n<p>  <\/p>\n<h4 id=\"treyt-obekty\">\u0422\u0440\u0435\u0439\u0442-\u043e\u0431\u044a\u0435\u043a\u0442\u044b<\/h4>\n<p>  <\/p>\n<p>\u0425\u043e\u0442\u044f <code>Rust<\/code> \u043f\u0440\u0435\u0434\u043f\u043e\u0447\u0438\u0442\u0430\u0435\u0442 \u0441\u0442\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0443\u044e \u043e\u0442\u043f\u0440\u0430\u0432\u043a\u0443 (static dispatch), \u043e\u043d \u0442\u0430\u043a\u0436\u0435 \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u0435\u0442 \u0434\u0438\u043d\u0430\u043c\u0438\u0447\u0435\u0441\u043a\u0443\u044e \u043e\u0442\u043f\u0440\u0430\u0432\u043a\u0443 (dynamic dispatch) \u0447\u0435\u0440\u0435\u0437 \u043c\u0435\u0445\u0430\u043d\u0438\u0437\u043c \u043f\u043e\u0434 \u043d\u0430\u0437\u0432\u0430\u043d\u0438\u0435\u043c &#171;\u0442\u0440\u0435\u0439\u0442-\u043e\u0431\u044a\u0435\u043a\u0442\u044b&#187; (trait objects).<\/p>\n<p>  <\/p>\n<p>\u0414\u0438\u043d\u0430\u043c\u0438\u0447\u0435\u0441\u043a\u0430\u044f \u043e\u0442\u043f\u0440\u0430\u0432\u043a\u0430 \u2014 \u044d\u0442\u043e \u043f\u0440\u043e\u0446\u0435\u0441\u0441 \u0432\u044b\u0431\u043e\u0440\u0430 \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438 \u043f\u043e\u043b\u0438\u043c\u043e\u0440\u0444\u043d\u043e\u0439 \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u0438 (\u043c\u0435\u0442\u043e\u0434\u0430 \u0438\u043b\u0438 \u0444\u0443\u043d\u043a\u0446\u0438\u0438) \u0434\u043b\u044f \u0432\u044b\u0437\u043e\u0432\u0430 \u0432\u043e \u0432\u0440\u0435\u043c\u044f \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f (runtime).<\/p>\n<p>  <\/p>\n<pre><code class=\"rust\">trait GetSound {     fn get_sound(&amp;self) -> String; }  struct Cat {     sound: String, } impl GetSound for Cat {     fn get_sound(&amp;self) -> String {         self.sound.clone()     } }  struct Bell {     sound: String, } impl GetSound for Bell {     fn get_sound(&amp;self) -> String {         self.sound.clone()     } }  fn make_sound&lt;T: GetSound>(t: &amp;T) {     println!(\"{}!\", t.get_sound()) }  fn main() {     let kitty = Cat { sound: \"Meow\".to_string() };     let the_bell = Bell { sound: \"Ding Dong\".to_string() };      make_sound(&amp;kitty); \/\/ Meow!     make_sound(&amp;the_bell); \/\/ Ding Dong! }<\/code><\/pre>\n<p>  <\/p>\n<h1 id=\"slozhnaya-chast\">\u0421\u043b\u043e\u0436\u043d\u0430\u044f \u0447\u0430\u0441\u0442\u044c<\/h1>\n<p>  <\/p>\n<h2 id=\"vladenie-ownership\">\u0412\u043b\u0430\u0434\u0435\u043d\u0438\u0435 (ownership)<\/h2>\n<p>  <\/p>\n<pre><code class=\"rust\">fn main() {     let a = [1, 2, 3];     let b = a;     println!(\"{:?} {:?}\", a, b); \/\/ [1, 2, 3] [1, 2, 3] }  fn main() {     let a = vec![1, 2, 3];     let b = a;     println!(\"{:?} {:?}\", a, b); \/\/ \u043e\u0448\u0438\u0431\u043a\u0430; \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435 \u043f\u0435\u0440\u0435\u043c\u0435\u0449\u0435\u043d\u043d\u043e\u0433\u043e (moved) \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f: `a` }<\/code><\/pre>\n<p>  <\/p>\n<p>\u0412 \u044d\u0442\u0438\u0445 \u043f\u0440\u0438\u043c\u0435\u0440\u0430\u0445 \u043c\u044b \u043f\u044b\u0442\u0430\u0435\u043c\u0441\u044f \u043f\u0440\u0438\u0441\u0432\u043e\u0438\u0442\u044c <code>b<\/code> \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 <code>a<\/code>. \u0412 \u043e\u0431\u043e\u0438\u0445 \u0431\u043b\u043e\u043a\u0430\u0445 \u043a\u043e\u0434 \u043f\u043e\u0447\u0442\u0438 \u043e\u0434\u0438\u043d\u0430\u043a\u043e\u0432\u044b\u0439, \u0440\u0430\u0437\u043d\u0438\u0446\u0430 \u043b\u0438\u0448\u044c \u0432 \u0442\u0438\u043f\u0430\u0445 \u0434\u0430\u043d\u043d\u044b\u0445. \u0412\u043e \u0432\u0442\u043e\u0440\u043e\u043c \u0441\u043b\u0443\u0447\u0430\u0435 \u0432\u043e\u0437\u043d\u0438\u043a\u0430\u0435\u0442 \u043e\u0448\u0438\u0431\u043a\u0430. \u042d\u0442\u043e \u0441\u0432\u044f\u0437\u0430\u043d\u043e \u0441 \u0432\u043b\u0430\u0434\u0435\u043d\u0438\u0435\u043c (ownership).<\/p>\n<p>  <\/p>\n<h4 id=\"chto-takoe-vladenie\">\u0427\u0442\u043e \u0442\u0430\u043a\u043e\u0435 \u0432\u043b\u0430\u0434\u0435\u043d\u0438\u0435?<\/h4>\n<p>  <\/p>\n<p>\u041f\u0440\u0438\u0432\u044f\u0437\u043a\u0438 \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0445 \u0432\u043b\u0430\u0434\u0435\u044e\u0442 \u0442\u0435\u043c, \u043a \u0447\u0435\u043c\u0443 \u043e\u043d\u0438 \u043f\u0440\u0438\u0432\u044f\u0437\u0430\u043d\u044b. \u0414\u0430\u043d\u043d\u044b\u0435 \u043c\u043e\u0433\u0443\u0442 \u043e\u0434\u043d\u043e\u0432\u0440\u0435\u043c\u0435\u043d\u043d\u043e \u0438\u043c\u0435\u0442\u044c \u0442\u043e\u043b\u044c\u043a\u043e \u043e\u0434\u043d\u043e\u0433\u043e \u0432\u043b\u0430\u0434\u0435\u043b\u044c\u0446\u0430. \u041a\u043e\u0433\u0434\u0430 \u043f\u0440\u0438\u0432\u044f\u0437\u043a\u0430 \u0432\u044b\u0445\u043e\u0434\u0438\u0442 \u0437\u0430 \u043f\u0440\u0435\u0434\u0435\u043b\u044b \u043e\u0431\u043b\u0430\u0441\u0442\u0438 \u0432\u0438\u0434\u0438\u043c\u043e\u0441\u0442\u0438 (scope), <code>Rust<\/code> \u043e\u0441\u0432\u043e\u0431\u043e\u0436\u0434\u0430\u0435\u0442 \u0441\u0432\u044f\u0437\u0430\u043d\u043d\u044b\u0435 \u0440\u0435\u0441\u0443\u0440\u0441\u044b. \u0422\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\u043e\u0441\u0442\u044c \u0440\u0430\u0431\u043e\u0442\u044b \u0441 \u043f\u0430\u043c\u044f\u0442\u044c\u044e.<\/p>\n<p>  <\/p>\n<h4 id=\"kopiruemye-i-peremeschaemye-tipy\">\u041a\u043e\u043f\u0438\u0440\u0443\u0435\u043c\u044b\u0435 \u0438 \u043f\u0435\u0440\u0435\u043c\u0435\u0449\u0430\u0435\u043c\u044b\u0435 \u0442\u0438\u043f\u044b<\/h4>\n<p>  <\/p>\n<p>\u041f\u0440\u0438 \u043f\u0440\u0438\u0441\u0432\u043e\u0435\u043d\u0438\u0438 \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u043e\u0439 \u0434\u0440\u0443\u0433\u043e\u0439 \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u043e\u0439 \u0438\u043b\u0438 \u043f\u0440\u0438 \u043f\u0435\u0440\u0435\u0434\u0430\u0447\u0435 \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u043e\u0439 \u0444\u0443\u043d\u043a\u0446\u0438\u0438 (\u0431\u0435\u0437 \u0441\u0441\u044b\u043b\u043a\u0438), \u0435\u0441\u043b\u0438 \u0442\u0438\u043f \u0434\u0430\u043d\u043d\u044b\u0445 \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f<\/p>\n<p>  <\/p>\n<ol>\n<li>\u041a\u043e\u043f\u0438\u0440\u0443\u0435\u043c\u044b\u043c (copy type)<br \/> \n<ul>\n<li>\u0434\u0430\u043d\u043d\u044b\u0435 \u043a\u043e\u043f\u0438\u0440\u0443\u044e\u0442\u0441\u044f \u0438 \u043f\u0440\u0438\u0441\u0432\u0430\u0438\u0432\u0430\u044e\u0442\u0441\u044f \u0438\u043b\u0438 \u043f\u0435\u0440\u0435\u0434\u0430\u044e\u0442\u0441\u044f<\/li>\n<li>\u0441\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u0435 \u0432\u043b\u0430\u0434\u0435\u043d\u0438\u044f \u0438\u0441\u0445\u043e\u0434\u043d\u044b\u0445 \u0434\u0430\u043d\u043d\u044b\u0445 \u0443\u0441\u0442\u0430\u043d\u0430\u0432\u043b\u0438\u0432\u0430\u0435\u0442\u0441\u044f \u0432 \u0441\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u0435 &#171;\u0441\u043a\u043e\u043f\u0438\u0440\u043e\u0432\u0430\u043d\u043e&#187;<\/li>\n<li>\u0445\u0430\u0440\u0430\u043a\u0442\u0435\u0440\u043d\u043e \u0432 \u043e\u0441\u043d\u043e\u0432\u043d\u043e\u043c \u0434\u043b\u044f \u043f\u0440\u0438\u043c\u0438\u0442\u0438\u0432\u043d\u044b\u0445 \u0442\u0438\u043f\u043e\u0432<\/li>\n<\/ul>\n<\/li>\n<li>\u041f\u0435\u0440\u0435\u043c\u0435\u0449\u0430\u0435\u043c\u044b\u043c (move type)<br \/> \n<ul>\n<li>\u0434\u0430\u043d\u043d\u044b\u0435 \u043f\u0435\u0440\u0435\u043c\u0435\u0449\u0430\u044e\u0442\u0441\u044f \u0432 \u043d\u043e\u0432\u0443\u044e \u043f\u0440\u0438\u0432\u044f\u0437\u043a\u0443 \u0438 \u0441\u0442\u0430\u043d\u043e\u0432\u044f\u0442\u0441\u044f \u043d\u0435\u0434\u043e\u0441\u0442\u0443\u043f\u043d\u044b\u043c\u0438 \u0447\u0435\u0440\u0435\u0437 \u043e\u0440\u0438\u0433\u0438\u043d\u0430\u043b\u044c\u043d\u0443\u044e \u043f\u0440\u0438\u0432\u044f\u0437\u043a\u0443<\/li>\n<li>\u0441\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u0435 \u0432\u043b\u0430\u0434\u0435\u043d\u0438\u044f \u0438\u0441\u0445\u043e\u0434\u043d\u044b\u0445 \u0434\u0430\u043d\u043d\u044b\u0445 \u0443\u0441\u0442\u0430\u043d\u0430\u0432\u043b\u0438\u0432\u0430\u0435\u0442\u0441\u044f \u0432 \u0441\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u0435 &#171;\u043f\u0435\u0440\u0435\u043c\u0435\u0449\u0435\u043d\u043e&#187;<\/li>\n<li>\u0445\u0430\u0440\u0430\u043a\u0442\u0435\u0440\u043d\u043e \u0434\u043b\u044f \u043d\u0435\u043f\u0440\u0438\u043c\u0438\u0442\u0438\u0432\u043d\u044b\u0445 \u0442\u0438\u043f\u043e\u0432<\/li>\n<\/ul>\n<\/li>\n<\/ol>\n<p>  <\/p>\n<p>\u041f\u043e\u0432\u0435\u0434\u0435\u043d\u0438\u0435 \u0442\u0438\u043f\u0430 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u044f\u0435\u0442\u0441\u044f \u0440\u0435\u0430\u043b\u0438\u0437\u043e\u0432\u0430\u043d\u043d\u044b\u043c\u0438 \u043d\u0430 \u043d\u0435\u043c \u0442\u0440\u0435\u0439\u0442\u0430\u043c\u0438. \u041f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e \u043f\u0440\u0438\u0432\u044f\u0437\u043a\u0438 \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0445 \u0438\u043c\u0435\u044e\u0442 &#171;\u0441\u0435\u043c\u0430\u043d\u0442\u0438\u043a\u0443 \u043f\u0435\u0440\u0435\u043c\u0435\u0449\u0435\u043d\u0438\u044f&#187; (move semantics). \u041e\u0434\u043d\u0430\u043a\u043e \u0435\u0441\u043b\u0438 \u0434\u043b\u044f \u0442\u0438\u043f\u0430 \u0440\u0435\u0430\u043b\u0438\u0437\u043e\u0432\u0430\u043d \u0442\u0440\u0435\u0439\u0442 <a href=\"https:\/\/doc.rust-lang.org\/core\/marker\/trait.Copy.html\">core::marker::Copy<\/a>, \u043e\u043d \u0438\u043c\u0435\u0435\u0442 &#171;\u0441\u0435\u043c\u0430\u043d\u0442\u0438\u043a\u0443 \u043a\u043e\u043f\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f&#187;.<\/p>\n<p>  <\/p>\n<p>\u0422\u0430\u043a\u0438\u043c \u043e\u0431\u0440\u0430\u0437\u043e\u043c, \u0432\u043e \u0432\u0442\u043e\u0440\u043e\u043c \u043f\u0440\u0438\u043c\u0435\u0440\u0435 \u043e\u0431\u044a\u0435\u043a\u0442 \u0432\u0435\u043a\u0442\u043e\u0440\u0430 \u043f\u0435\u0440\u0435\u043c\u0435\u0449\u0430\u0435\u0442\u0441\u044f \u0432 <code>b<\/code>, \u0438 <code>a<\/code> \u043b\u0438\u0448\u0430\u0435\u0442\u0441\u044f \u0432\u043b\u0430\u0434\u0435\u043d\u0438\u044f \u0434\u043b\u044f \u0434\u043e\u0441\u0442\u0443\u043f\u0430 \u043a \u043d\u0435\u043c\u0443.<\/p>\n<p>  <\/p>\n<h2 id=\"zaimstvovanie-borrowing\">\u0417\u0430\u0438\u043c\u0441\u0442\u0432\u043e\u0432\u0430\u043d\u0438\u0435 (borrowing)<\/h2>\n<p>  <\/p>\n<p>\u0412 \u0440\u0435\u0430\u043b\u044c\u043d\u044b\u0445 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f\u0445 \u043c\u044b \u0447\u0430\u0449\u0435 \u0432\u0441\u0435\u0433\u043e \u043f\u0435\u0440\u0435\u0434\u0430\u0435\u043c \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0435 \u0444\u0443\u043d\u043a\u0446\u0438\u044f\u043c \u0438\u043b\u0438 \u043f\u0440\u0438\u0441\u0432\u0430\u0438\u0432\u0430\u0435\u043c \u0438\u0445 \u0434\u0440\u0443\u0433\u0438\u043c \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u043c. \u0412 \u044d\u0442\u0438\u0445 \u0441\u043b\u0443\u0447\u0430\u044f\u0445 \u043c\u044b \u0441\u0441\u044b\u043b\u0430\u0435\u043c\u0441\u044f (referencing) \u043d\u0430 \u043e\u0440\u0438\u0433\u0438\u043d\u0430\u043b\u044c\u043d\u044b\u0435 \u043f\u0440\u0438\u0432\u044f\u0437\u043a\u0438, \u0437\u0430\u0438\u043c\u0441\u0442\u0432\u0443\u0435\u043c (borrow) \u0438\u0445 \u0434\u0430\u043d\u043d\u044b\u0435.<\/p>\n<p>  <\/p>\n<h4 id=\"obschee-i-mutabelnoe-zaimstvovanie\">\u041e\u0431\u0449\u0435\u0435 \u0438 \u043c\u0443\u0442\u0430\u0431\u0435\u043b\u044c\u043d\u043e\u0435 \u0437\u0430\u0438\u043c\u0441\u0442\u0432\u043e\u0432\u0430\u043d\u0438\u0435<\/h4>\n<p>  <\/p>\n<p>\u0421\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u0435\u0442 2 \u0442\u0438\u043f\u0430 \u0437\u0430\u0438\u043c\u0441\u0442\u0432\u043e\u0432\u0430\u043d\u0438\u044f:<\/p>\n<p>  <\/p>\n<ol>\n<li>\u041e\u0431\u0449\u0435\u0435\/\u0440\u0430\u0441\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u043d\u043e\u0435 (shared) \u0437\u0430\u0438\u043c\u0441\u0442\u0432\u043e\u0432\u0430\u043d\u0438\u0435 (<code>&amp;T<\/code>)<br \/> \n<ul>\n<li>\u0434\u0430\u043d\u043d\u044b\u0435 \u043c\u043e\u0433\u0443\u0442 \u0431\u044b\u0442\u044c \u0437\u0430\u0438\u043c\u0441\u0442\u0432\u043e\u0432\u0430\u043d\u044b \u043e\u0434\u043d\u0438\u043c \u0438\u043b\u0438 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u0438\u043c\u0438 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f\u043c\u0438, \u043d\u043e \u043d\u0435 \u0434\u043e\u043b\u0436\u043d\u044b \u043c\u043e\u0434\u0438\u0444\u0438\u0446\u0438\u0440\u043e\u0432\u0430\u0442\u044c\u0441\u044f, \u0442.\u0435. \u0434\u043e\u0441\u0442\u0443\u043f\u043d\u044b \u0442\u043e\u043b\u044c\u043a\u043e \u0434\u043b\u044f \u0447\u0442\u0435\u043d\u0438\u044f<\/li>\n<\/ul>\n<\/li>\n<li>\u041c\u0443\u0442\u0430\u0431\u0435\u043b\u044c\u043d\u043e\u0435 \u0437\u0430\u0438\u043c\u0441\u0442\u0432\u043e\u0432\u0430\u043d\u0438\u0435 (<code>&amp;mut T<\/code>)<br \/> \n<ul>\n<li>\u0434\u0430\u043d\u043d\u044b\u0435 \u043c\u043e\u0433\u0443\u0442 \u0437\u0430\u0438\u043c\u0441\u0442\u0432\u043e\u0432\u0430\u0442\u044c\u0441\u044f \u0438 \u043c\u043e\u0434\u0438\u0444\u0438\u0446\u0438\u0440\u043e\u0432\u0430\u0442\u044c\u0441\u044f \u043e\u0434\u043d\u043e\u0432\u0440\u0435\u043c\u0435\u043d\u043d\u043e \u0442\u043e\u043b\u044c\u043a\u043e \u043e\u0434\u043d\u0438\u043c \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u0435\u043c<\/li>\n<\/ul>\n<\/li>\n<\/ol>\n<p>  <\/p>\n<h4 id=\"pravila-zaimstvovaniya\">\u041f\u0440\u0430\u0432\u0438\u043b\u0430 \u0437\u0430\u0438\u043c\u0441\u0442\u0432\u043e\u0432\u0430\u043d\u0438\u044f<\/h4>\n<p>  <\/p>\n<ol>\n<li>\u0414\u0430\u043d\u043d\u044b\u0435 \u043c\u043e\u0433\u0443\u0442 \u0431\u044b\u0442\u044c \u0437\u0430\u0438\u043c\u0441\u0442\u0432\u043e\u0432\u0430\u043d\u044b \u0442\u043e\u043b\u044c\u043a\u043e \u043a\u0430\u043a \u043e\u0431\u0449\u0435\u0435 \u0437\u0430\u0438\u043c\u0441\u0442\u0432\u043e\u0432\u0430\u043d\u0438\u0435 \u0438\u043b\u0438 \u043a\u0430\u043a \u043c\u0443\u0442\u0430\u0431\u0435\u043b\u044c\u043d\u043e\u0435 \u0437\u0430\u0438\u043c\u0441\u0442\u0432\u043e\u0432\u0430\u043d\u0438\u0435, \u043d\u043e \u043d\u0435 \u043a\u0430\u043a \u0442\u043e \u0438 \u0434\u0440\u0443\u0433\u043e\u0435 \u043e\u0434\u043d\u043e\u0432\u0440\u0435\u043c\u0435\u043d\u043d\u043e.<\/li>\n<li>\u0417\u0430\u0438\u043c\u0441\u0442\u0432\u043e\u0432\u0430\u043d\u0438\u0435 \u043f\u0440\u0438\u043c\u0435\u043d\u044f\u0435\u0442\u0441\u044f \u043a\u0430\u043a \u043a \u043a\u043e\u043f\u0438\u0440\u0443\u0435\u043c\u044b\u043c, \u0442\u0430\u043a \u0438 \u043a \u043f\u0435\u0440\u0435\u043c\u0435\u0449\u0430\u0435\u043c\u044b\u043c \u0442\u0438\u043f\u0430\u043c.<\/li>\n<li>\u041d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u0441\u043e\u0431\u043b\u044e\u0434\u0430\u0442\u044c \u043f\u0440\u0430\u0432\u0438\u043b\u0430 \u0432\u0440\u0435\u043c\u0435\u043d \u0436\u0438\u0437\u043d\u0438 (lifetimes). \u041c\u044b \u043e\u0431\u0441\u0443\u0434\u0438\u043c \u044d\u0442\u043e \u043f\u043e\u0437\u0436\u0435.<\/li>\n<\/ol>\n<p>  <\/p>\n<pre><code class=\"rust\">fn main() {   let mut a = vec![1, 2, 3];   let b = &amp;mut a;  \/\/  &amp;mut \u0437\u0430\u0438\u043c\u0441\u0442\u0432\u043e\u0432\u0430\u043d\u0438\u0435 `a` \u043d\u0430\u0447\u0438\u043d\u0430\u0435\u0442\u0441\u044f \u0437\u0434\u0435\u0441\u044c                    \/\/  v   \/\/ ...           \/\/  v   \/\/ ...           \/\/  v }                  \/\/  &amp;mut \u0437\u0430\u0438\u043c\u0441\u0442\u0432\u043e\u0432\u0430\u043d\u0438\u0435 `a` \u0437\u0430\u043a\u0430\u043d\u0447\u0438\u0432\u0430\u0435\u0442\u0441\u044f \u0437\u0434\u0435\u0441\u044c  fn main() {   let mut a = vec![1, 2, 3];   let b = &amp;mut a;  \/\/  &amp;mut \u0437\u0430\u0438\u043c\u0441\u0442\u0432\u043e\u0432\u0430\u043d\u0438\u0435 `a` \u043d\u0430\u0447\u0438\u043d\u0430\u0435\u0442\u0441\u044f \u0437\u0434\u0435\u0441\u044c   \/\/ ...    println!(\"{:?}\", a); \/\/ \u043f\u044b\u0442\u0430\u0435\u043c\u0441\u044f \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c \u0434\u043e\u0441\u0442\u0443\u043f \u043a `a` \u043a\u0430\u043a \u043a \u043e\u0431\u0449\u0435\u043c\u0443 \u0437\u0430\u0438\u043c\u0441\u0442\u0432\u043e\u0432\u0430\u043d\u0438\u044e, \u043f\u043e\u043b\u0443\u0447\u0430\u0435\u043c \u043e\u0448\u0438\u0431\u043a\u0443 }                  \/\/  &amp;mut \u0437\u0430\u0438\u043c\u0441\u0442\u0432\u043e\u0432\u0430\u043d\u0438\u0435 `a` \u0437\u0430\u043a\u0430\u043d\u0447\u0438\u0432\u0430\u0435\u0442\u0441\u044f \u0437\u0434\u0435\u0441\u044c  fn main() {   let mut a = vec![1, 2, 3];   {     let b = &amp;mut a;  \/\/  &amp;mut \u0437\u0430\u0438\u043c\u0441\u0442\u0432\u043e\u0432\u0430\u043d\u0438\u0435 `a` \u043d\u0430\u0447\u0438\u043d\u0430\u0435\u0442\u0441\u044f \u0437\u0434\u0435\u0441\u044c     \/\/ ...   }                  \/\/  &amp;mut \u0437\u0430\u0438\u043c\u0441\u0442\u0432\u043e\u0432\u0430\u043d\u0438\u0435 `a` \u0437\u0430\u043a\u0430\u043d\u0447\u0438\u0432\u0430\u0435\u0442\u0441\u044f \u0437\u0434\u0435\u0441\u044c    println!(\"{:?}\", a); \/\/ `a` \u0434\u043e\u0441\u0442\u0443\u043f\u043d\u0430 \u043a\u0430\u043a \u043e\u0431\u0449\u0435\u0435 \u0437\u0430\u0438\u043c\u0441\u0442\u0432\u043e\u0432\u0430\u043d\u0438\u0435 }<\/code><\/pre>\n<p>  <\/p>\n<h4 id=\"primery-obschego-zaimstvovaniya\">\u041f\u0440\u0438\u043c\u0435\u0440\u044b \u043e\u0431\u0449\u0435\u0433\u043e \u0437\u0430\u0438\u043c\u0441\u0442\u0432\u043e\u0432\u0430\u043d\u0438\u044f<\/h4>\n<p>  <\/p>\n<pre><code class=\"rust\">fn main() {     let a = [1, 2, 3];     let b = &amp;a;     println!(\"{:?} {}\", a, b[0]); \/\/ [1, 2, 3] 1 }  fn main() {     let a = vec![1, 2, 3];     let b = get_first_element(&amp;a);      println!(\"{:?} {}\", a, b); \/\/ [1, 2, 3] 1 }  fn get_first_element(a: &amp;Vec&lt;i32>) -> i32 {     a[0] }<\/code><\/pre>\n<p>  <\/p>\n<h4 id=\"primery-mutabelnogo-zaimstvovaniya\">\u041f\u0440\u0438\u043c\u0435\u0440\u044b \u043c\u0443\u0442\u0430\u0431\u0435\u043b\u044c\u043d\u043e\u0433\u043e \u0437\u0430\u0438\u043c\u0441\u0442\u0432\u043e\u0432\u0430\u043d\u0438\u044f<\/h4>\n<p>  <\/p>\n<pre><code class=\"rust\">fn main() {     let mut a = [1, 2, 3];     let b = &amp;mut a;     b[0] = 4;     println!(\"{:?}\", b); \/\/ [4, 2, 3] }  fn main() {     let mut a = [1, 2, 3];     {         let b = &amp;mut a;         b[0] = 4;     }      println!(\"{:?}\", a); \/\/ [4, 2, 3] }  fn main() {     let mut a = vec![1, 2, 3];     let b = change_and_get_first_element(&amp;mut a);      println!(\"{:?} {}\", a, b); \/\/ [4, 2, 3] 4 }  fn change_and_get_first_element(a: &amp;mut Vec&lt;i32>) -> i32 {     a[0] = 4;     a[0] }<\/code><\/pre>\n<p>  <\/p>\n<h2 id=\"vremena-zhizni-lifetimes\">\u0412\u0440\u0435\u043c\u0435\u043d\u0430 \u0436\u0438\u0437\u043d\u0438 (lifetimes)<\/h2>\n<p>  <\/p>\n<p>\u041f\u0440\u0438 \u0440\u0430\u0431\u043e\u0442\u0435 \u0441 \u0441\u0441\u044b\u043b\u043a\u0430\u043c\u0438, \u043c\u044b \u0434\u043e\u043b\u0436\u043d\u044b \u0443\u0431\u0435\u0434\u0438\u0442\u044c\u0441\u044f, \u0447\u0442\u043e \u0441\u0441\u044b\u043b\u043e\u0447\u043d\u044b\u0435 \u0434\u0430\u043d\u043d\u044b\u0435 (\u0434\u0430\u043d\u043d\u044b\u0435, \u043d\u0430 \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0443\u043a\u0430\u0437\u044b\u0432\u0430\u044e\u0442 \u0441\u0441\u044b\u043b\u043a\u0438) \u043e\u0441\u0442\u0430\u044e\u0442\u0441\u044f &#171;\u0436\u0438\u0432\u044b\u043c\u0438&#187; \u0434\u043e \u0442\u0435\u0445 \u043f\u043e\u0440, \u043f\u043e\u043a\u0430 \u043c\u044b \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u043c \u0441\u0441\u044b\u043b\u043a\u0438.<\/p>\n<p>  <\/p>\n<p>\u041f\u0440\u0435\u0434\u043f\u043e\u043b\u043e\u0436\u0438\u043c, \u0447\u0442\u043e \u0443 \u043d\u0430\u0441 \u0435\u0441\u0442\u044c \u043f\u0440\u0438\u0432\u044f\u0437\u043a\u0430 \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u043e\u0439 <code>a<\/code>. \u041c\u044b \u0441\u0441\u044b\u043b\u0430\u0435\u043c\u0441\u044f \u043d\u0430 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 <code>a<\/code> \u0438\u0437 \u0434\u0440\u0443\u0433\u043e\u0439 \u043f\u0440\u0438\u0432\u044f\u0437\u043a\u0438 \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u043e\u0439 <code>x<\/code>. \u041c\u044b \u0434\u043e\u043b\u0436\u043d\u044b \u043e\u0431\u0435\u0441\u043f\u0435\u0447\u0438\u0442\u044c, \u0447\u0442\u043e\u0431\u044b <code>a<\/code> \u0436\u0438\u043b\u0430, \u043f\u043e\u043a\u0430 \u043c\u044b \u043d\u0435 \u0437\u0430\u043a\u043e\u043d\u0447\u0438\u043c \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c <code>x<\/code>.<\/p>\n<p>  <\/p>\n<p>\u0423\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u0435 \u043f\u0430\u043c\u044f\u0442\u044c\u044e \u2014 \u044d\u0442\u043e \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u0435 \u0440\u0435\u0441\u0443\u0440\u0441\u0430\u043c\u0438 \u043f\u0440\u0438\u043c\u0435\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u043a \u043f\u0430\u043c\u044f\u0442\u0438 \u043a\u043e\u043c\u043f\u044c\u044e\u0442\u0435\u0440\u0430. \u0414\u043e \u0441\u0435\u0440\u0435\u0434\u0438\u043d\u044b 1990-\u0445 \u0432 \u0431\u043e\u043b\u044c\u0448\u0438\u043d\u0441\u0442\u0432\u0435 \u044f\u0437\u044b\u043a\u043e\u0432 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043b\u043e\u0441\u044c \u0440\u0443\u0447\u043d\u043e\u0435 \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u0435 \u043f\u0430\u043c\u044f\u0442\u044c\u044e (manual memory management, MMM), \u043a\u043e\u0442\u043e\u0440\u043e\u0435 \u0442\u0440\u0435\u0431\u043e\u0432\u0430\u043b\u043e \u043e\u0442 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0441\u0442\u0430 \u043f\u0440\u0435\u0434\u043e\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u0438\u044f \u044f\u0432\u043d\u044b\u0445 \u0438\u043d\u0441\u0442\u0440\u0443\u043a\u0446\u0438\u0439 \u043f\u043e \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u0438\u044e \u0438 \u043e\u0441\u0432\u043e\u0431\u043e\u0436\u0434\u0435\u043d\u0438\u044e\/\u0443\u0434\u0430\u043b\u0435\u043d\u0438\u044e (deallocate) \u043d\u0435\u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u043c\u044b\u0445 \u043e\u0431\u044a\u0435\u043a\u0442\u043e\u0432\/\u043c\u0443\u0441\u043e\u0440\u0430 (garbage). \u0412 1959 John McCarthy \u0438\u0437\u043e\u0431\u0440\u0435\u043b \u0441\u0431\u043e\u0440\u043a\u0443 \u043c\u0443\u0441\u043e\u0440\u0430 (garbage collection, GC) \u2014 \u0440\u0430\u0437\u043d\u043e\u0432\u0438\u0434\u043d\u043e\u0441\u0442\u044c \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u043e\u0433\u043e \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u044f \u043f\u0430\u043c\u044f\u0442\u044c\u044e (automatic memory management, AMM). \u0421\u0431\u043e\u0440\u0449\u0438\u043a \u043c\u0443\u0441\u043e\u0440\u0430 \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0438 (\u0431\u0435\u0437 \u0443\u0447\u0430\u0441\u0442\u0438\u044f \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0441\u0442\u0430) \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u044f\u0435\u0442 \u043d\u0435\u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u043c\u0443\u044e \u043f\u0430\u043c\u044f\u0442\u044c \u0438 \u043e\u0441\u0432\u043e\u0431\u043e\u0436\u0434\u0430\u0435\u0442 \u0435\u0435. \u041f\u043e\u0445\u043e\u0436\u0438\u0439 \u0444\u0443\u043d\u043a\u0446\u0438\u043e\u043d\u0430\u043b \u043f\u0440\u0435\u0434\u043e\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u0442 \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0438\u0439 \u043f\u043e\u0434\u0441\u0447\u0435\u0442 \u0441\u0441\u044b\u043b\u043e\u043a (automatic reference counting, ARC), \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u043c\u044b\u0439 \u0432 <code>Objective-C<\/code> \u0438 <code>Swift<\/code>.<\/p>\n<p>  <\/p>\n<h4 id=\"chto-takoe-vremya-zhizni\">\u0427\u0442\u043e \u0442\u0430\u043a\u043e\u0435 \u0432\u0440\u0435\u043c\u044f \u0436\u0438\u0437\u043d\u0438?<\/h4>\n<p>  <\/p>\n<p>\u0412 <code>Rust<\/code><\/p>\n<p>  <\/p>\n<ul>\n<li>\u0443 \u0440\u0435\u0441\u0443\u0440\u0441\u0430 \u043c\u043e\u0436\u0435\u0442 \u0431\u044b\u0442\u044c \u0442\u043e\u043b\u044c\u043a\u043e \u043e\u0434\u0438\u043d \u0432\u043b\u0430\u0434\u0435\u043b\u0435\u0446 \u0432 \u043e\u0434\u043d\u043e \u0432\u0440\u0435\u043c\u044f. \u041f\u0440\u0438 \u0432\u044b\u0445\u043e\u0434\u0435 \u0437\u0430 \u043f\u0440\u0435\u0434\u0435\u043b\u044b \u043e\u0431\u043b\u0430\u0441\u0442\u0438 \u0432\u0438\u0434\u0438\u043c\u043e\u0441\u0442\u0438, <code>Rust<\/code> \u0443\u0434\u0430\u043b\u044f\u0435\u0442 \u0435\u0433\u043e<\/li>\n<li>\u043a\u043e\u0433\u0434\u0430 \u043c\u044b \u0445\u043e\u0442\u0438\u043c \u043f\u043e\u0432\u0442\u043e\u0440\u043d\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0440\u0435\u0441\u0443\u0440\u0441, \u043c\u044b \u0441\u0441\u044b\u043b\u0430\u0435\u043c\u0441\u044f \u043d\u0430 \u043d\u0435\u0433\u043e, \u0442.\u0435. \u0437\u0430\u0438\u043c\u0441\u0442\u0432\u0443\u0435\u043c \u0435\u0433\u043e \u0441\u043e\u0434\u0435\u0440\u0436\u0438\u043c\u043e\u0435<\/li>\n<li>\u043f\u0440\u0438 \u0440\u0430\u0431\u043e\u0442\u0435 \u0441 \u0441\u0441\u044b\u043b\u043a\u0430\u043c\u0438, \u043c\u044b \u0434\u043e\u043b\u0436\u043d\u044b \u0443\u043a\u0430\u0437\u0430\u0442\u044c \u0430\u043d\u043d\u043e\u0442\u0430\u0446\u0438\u0438 \u0432\u0440\u0435\u043c\u0435\u043d\u0438 \u0436\u0438\u0437\u043d\u0438 (lifetime annotations) \u0434\u043b\u044f \u043f\u0440\u0435\u0434\u043e\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u0438\u044f \u043a\u043e\u043c\u043f\u0438\u043b\u044f\u0442\u043e\u0440\u0443 \u0438\u043d\u0441\u0442\u0440\u0443\u043a\u0446\u0438\u0439 \u043e \u0442\u043e\u043c, \u043a\u0430\u043a \u0434\u043e\u043b\u0433\u043e \u0441\u0441\u044b\u043b\u043e\u0447\u043d\u044b\u0435 \u0440\u0435\u0441\u0443\u0440\u0441\u044b \u0434\u043e\u043b\u0436\u043d\u044b \u0436\u0438\u0442\u044c<\/li>\n<li>\u043f\u043e\u0441\u043a\u043e\u043b\u044c\u043a\u0443 \u0430\u043d\u043d\u043e\u0442\u0430\u0446\u0438\u0438 \u0432\u0440\u0435\u043c\u0435\u043d\u0438 \u0436\u0438\u0437\u043d\u0438 \u0434\u0435\u043b\u0430\u044e\u0442 \u043a\u043e\u0434 \u0431\u043e\u043b\u0435\u0435 \u043c\u043d\u043e\u0433\u043e\u0441\u043b\u043e\u0432\u043d\u044b\u043c, \u0434\u043b\u044f \u0442\u043e\u0433\u043e, \u0447\u0442\u043e\u0431\u044b \u0441\u0434\u0435\u043b\u0430\u0442\u044c \u043d\u0435\u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043e\u0431\u0449\u0438\u0435 \u043f\u0430\u0442\u0442\u0435\u0440\u043d\u044b \u0431\u043e\u043b\u0435\u0435 \u044d\u0440\u0433\u043e\u043d\u043e\u043c\u0438\u0447\u043d\u044b\u043c\u0438, <code>Rust<\/code> \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u0438\u0441\u043a\u043b\u044e\u0447\u0430\u0442\u044c (elided)\/\u043e\u043f\u0443\u0441\u043a\u0430\u0442\u044c \u044d\u0442\u0438 \u0430\u043d\u043d\u043e\u0442\u0430\u0446\u0438\u0438 \u0432 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u0438\u044f\u0445 <code>fn<\/code>. \u0412 \u044d\u0442\u043e\u043c \u0441\u043b\u0443\u0447\u0430\u0435 \u043a\u043e\u043c\u043f\u0438\u043b\u044f\u0442\u043e\u0440 \u043f\u0440\u0438\u0441\u0432\u0430\u0438\u0432\u0430\u0435\u0442 \u0432\u0440\u0435\u043c\u0435\u043d\u0430 \u0436\u0438\u0437\u043d\u0438 \u043d\u0435\u044f\u0432\u043d\u043e<\/li>\n<\/ul>\n<p>  <\/p>\n<p>\u0412\u0440\u0435\u043c\u0435\u043d\u0430 \u0436\u0438\u0437\u043d\u0438 \u043f\u0440\u043e\u0432\u0435\u0440\u044f\u044e\u0442\u0441\u044f \u0432\u043e \u0432\u0440\u0435\u043c\u044f \u043a\u043e\u043c\u043f\u0438\u043b\u044f\u0446\u0438\u0438. \u041a\u043e\u043c\u043f\u0438\u043b\u044f\u0442\u043e\u0440 \u043f\u0440\u043e\u0432\u0435\u0440\u044f\u0435\u0442, \u043a\u043e\u0433\u0434\u0430 \u0434\u0430\u043d\u043d\u044b\u0435 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044e\u0442\u0441\u044f \u0432 \u043f\u0435\u0440\u0432\u044b\u0439 \u0438 \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u0438\u0439 \u0440\u0430\u0437. \u0421\u043e\u0433\u043b\u0430\u0441\u043d\u043e \u044d\u0442\u043e\u043c\u0443 <code>Rust<\/code> \u0443\u043f\u0440\u0430\u0432\u043b\u044f\u0435\u0442 \u043f\u0430\u043c\u044f\u0442\u044c\u044e \u0432\u043e \u0432\u0440\u0435\u043c\u044f \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f. \u042d\u0442\u043e \u043e\u0434\u043d\u0430 \u0438\u0437 \u043e\u0441\u043d\u043e\u0432\u043d\u044b\u0445 \u043f\u0440\u0438\u0447\u0438\u043d \u043c\u0435\u0434\u043b\u0435\u043d\u043d\u043e\u0439 \u043a\u043e\u043c\u043f\u0438\u043b\u044f\u0446\u0438\u0438 \u043a\u043e\u0434\u0430 <code>Rust<\/code>.<\/p>\n<p>  <\/p>\n<ul>\n<li>\u0412 \u043e\u0442\u043b\u0438\u0447\u0438\u0435 \u043e\u0442 C \u0438 C++, <code>Rust<\/code>, \u043a\u0430\u043a \u043f\u0440\u0430\u0432\u0438\u043b\u043e, \u043d\u0435 \u0443\u043d\u0438\u0447\u0442\u043e\u0436\u0430\u0435\u0442 (drop) \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u044f\u0432\u043d\u043e<\/li>\n<li>\u0432 \u043e\u0442\u043b\u0438\u0447\u0438\u0435 \u043e\u0442 GC, <code>Rust<\/code> \u043d\u0435 \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u0435\u0442 \u0432\u044b\u0437\u043e\u0432\u044b \u043e\u0441\u0432\u043e\u0431\u043e\u0436\u0434\u0435\u043d\u0438\u044f (deallocation calls), \u043a\u043e\u0433\u0434\u0430 \u0434\u0430\u043d\u043d\u044b\u0435 \u0431\u043e\u043b\u044c\u0448\u0435 \u043d\u0435 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044e\u0442\u0441\u044f<\/li>\n<li><code>Rust<\/code> \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u0435\u0442 \u0432\u044b\u0437\u043e\u0432\u044b \u043e\u0441\u0432\u043e\u0431\u043e\u0436\u0434\u0435\u043d\u0438\u044f, \u043a\u043e\u0433\u0434\u0430 \u0434\u0430\u043d\u043d\u044b\u0435 \u0432\u043e\u0442-\u0432\u043e\u0442 \u0432\u044b\u0439\u0434\u0443\u0442 \u0437\u0430 \u043f\u0440\u0435\u0434\u0435\u043b\u044b \u043e\u0431\u043b\u0430\u0441\u0442\u0438 \u0432\u0438\u0434\u0438\u043c\u043e\u0441\u0442\u0438, \u0430 \u0437\u0430\u0442\u0435\u043c \u043e\u0431\u0435\u0441\u043f\u0435\u0447\u0438\u0432\u0430\u0435\u0442 \u043e\u0442\u0441\u0443\u0442\u0441\u0442\u0432\u0438\u0435 \u0441\u0441\u044b\u043b\u043e\u043a \u043d\u0430 \u044d\u0442\u043e\u0442 \u0440\u0435\u0441\u0443\u0440\u0441<\/li>\n<\/ul>\n<p>  <\/p>\n<h4 id=\"ispolzovanie\">\u0418\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435<\/h4>\n<p>  <\/p>\n<p>\u0412\u0440\u0435\u043c\u0435\u043d\u0430 \u0436\u0438\u0437\u043d\u0438 \u0443\u043a\u0430\u0437\u044b\u0432\u0430\u044e\u0442\u0441\u044f \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u0430\u043f\u043e\u0441\u0442\u0440\u043e\u0444\u0430 (<code>'<\/code>). \u041f\u043e \u0441\u043e\u0433\u043b\u0430\u0448\u0435\u043d\u0438\u044e \u0434\u043b\u044f \u0438\u0445 \u0438\u043c\u0435\u043d\u043e\u0432\u0430\u043d\u0438\u044f \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044e\u0442\u0441\u044f \u0441\u0442\u0440\u043e\u0447\u043d\u044b\u0435 \u0431\u0443\u043a\u0432\u044b. \u041e\u0431\u044b\u0447\u043d\u043e \u043c\u044b \u043d\u0430\u0447\u0438\u043d\u0430\u0435\u043c \u0441 <code>'a<\/code> \u0438 \u0438\u0434\u0435\u043c \u043f\u043e \u0430\u043b\u0444\u0430\u0432\u0438\u0442\u0443, \u043a\u043e\u0433\u0434\u0430 \u0442\u0440\u0435\u0431\u0443\u0435\u0442\u0441\u044f \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u0432\u0440\u0435\u043c\u0435\u043d \u0436\u0438\u0437\u043d\u0438.<\/p>\n<p>  <\/p>\n<p>\u041f\u0440\u0438 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0438 \u0441\u0441\u044b\u043b\u043e\u043a:<\/p>\n<p>  <\/p>\n<p><strong>1. \u0412 \u043e\u0431\u044a\u044f\u0432\u043b\u0435\u043d\u0438\u044f\u0445 \u0444\u0443\u043d\u043a\u0446\u0438\u0439<\/strong><\/p>\n<p>  <\/p>\n<ul>\n<li>\u0432\u0440\u0435\u043c\u0435\u043d\u0430 \u0436\u0438\u0437\u043d\u0438 \u0441\u0441\u044b\u043b\u043e\u0447\u043d\u044b\u0445 \u0432\u0445\u043e\u0434\u043d\u044b\u0445 \u0438 \u0432\u044b\u0445\u043e\u0434\u043d\u044b\u0445 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u043e\u0432 \u0443\u043a\u0430\u0437\u044b\u0432\u0430\u044e\u0442\u0441\u044f \u043f\u043e\u0441\u043b\u0435 <code>&amp;<\/code>, \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440: <code>(x: &amp;'a mut str)<\/code>, <code>-> &amp;'a str<\/code><\/li>\n<li>\u0432\u0440\u0435\u043c\u0435\u043d\u0430 \u0436\u0438\u0437\u043d\u0438 \u0443\u043a\u0430\u0437\u044b\u0432\u0430\u044e\u0442\u0441\u044f \u043f\u043e\u0441\u043b\u0435 \u043d\u0430\u0437\u0432\u0430\u043d\u0438\u044f \u0444\u0443\u043d\u043a\u0446\u0438\u0438 \u043a\u0430\u043a \u043e\u0431\u0449\u0438\u0435 \u0442\u0438\u043f\u044b, \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440: <code>fn foo&lt;'a>(){}<\/code>, <code>fn bar&lt;'a, 'b>(){}<\/code><\/li>\n<\/ul>\n<p>  <\/p>\n<pre><code class=\"rust\">\/\/ \u0411\u0435\u0437 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u043e\u0432, \u0432\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u0442\u0441\u044f \u0441\u0441\u044b\u043b\u043a\u0430 fn function&lt;'a>() -> &amp;'a str {}  \/\/ \u041e\u0434\u0438\u043d \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440 fn function&lt;'a>(x: &amp;'a str) {}  \/\/ \u041e\u0434\u0438\u043d \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440 \u0438 \u0432\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u043c\u043e\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435, \u043e\u0431\u0430 \u0438\u043c\u0435\u044e\u0442 \u043e\u0434\u0438\u043d\u0430\u043a\u043e\u0432\u043e\u0435 \u0432\u0440\u0435\u043c\u044f \u0436\u0438\u0437\u043d\u0438. \/\/ \u0420\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442 \u0434\u043e\u043b\u0436\u0435\u043d \u0436\u0438\u0442\u044c, \u043a\u0430\u043a \u043c\u0438\u043d\u0438\u043c\u0443\u043c, \u0442\u0430\u043a\u0436\u0435 \u0434\u043e\u043b\u0433\u043e, \u043a\u0430\u043a \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440 fn function&lt;'a>(x: &amp;'a str) -> &amp;'a str {}  \/\/ \u041d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u043e\u0432, \u0442\u043e\u043b\u044c\u043a\u043e \u043e\u0434\u0438\u043d \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440 \u0438 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442 \u0438\u043c\u0435\u044e\u0442 \u043e\u0431\u0449\u0435\u0435 \u0432\u0440\u0435\u043c\u044f \u0436\u0438\u0437\u043d\u0438. \/\/ \u0420\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442 \u0434\u043e\u043b\u0436\u0435\u043d \u0436\u0438\u0442\u044c, \u043a\u0430\u043a \u043c\u0438\u043d\u0438\u043c\u0443\u043c, \u0442\u0430\u043a\u0436\u0435 \u0434\u043e\u043b\u0433\u043e, \u043a\u0430\u043a \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440 `y` fn function&lt;'a>(x: i32, y: &amp;'a str) -> &amp;'a str {}  \/\/ \u041d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u043e\u0432 \u0438 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442 \u0441 \u043e\u0431\u0449\u0438\u043c \u0432\u0440\u0435\u043c\u0435\u043d\u0435\u043c \u0436\u0438\u0437\u043d\u0438 \/\/ \u0420\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442 \u0434\u043e\u043b\u0436\u0435\u043d \u0436\u0438\u0442\u044c, \u043a\u0430\u043a \u043c\u0438\u043d\u0438\u043c\u0443\u043c, \u0442\u0430\u043a\u0436\u0435 \u0434\u043e\u043b\u0433\u043e, \u043a\u0430\u043a \u043e\u0431\u0430 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u0430 fn function&lt;'a>(x: &amp;'a str, y: &amp;'a str) -> &amp;'a str {}  \/\/ \u041d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u043e\u0432 \u0441 \u0440\u0430\u0437\u043d\u044b\u043c\u0438 \u0432\u0440\u0435\u043c\u0435\u043d\u0430\u043c\u0438 \u0436\u0438\u0437\u043d\u0438 \/\/ \u0420\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442 \u0434\u043e\u043b\u0436\u0435\u043d \u0436\u0438\u0442\u044c, \u043a\u0430\u043a \u043c\u0438\u043d\u0438\u043c\u0443\u043c, \u0442\u0430\u043a\u0436\u0435 \u0434\u043e\u043b\u0433\u043e, \u043a\u0430\u043a \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440 `x` fn function&lt;'a, 'b>(x: &amp;'a str, y: &amp;'b str) -> &amp;'a str {}<\/code><\/pre>\n<p>  <\/p>\n<p><strong>2. \u0412 \u043e\u0431\u044a\u044f\u0432\u043b\u0435\u043d\u0438\u044f\u0445 \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440 \u0438\u043b\u0438 \u043f\u0435\u0440\u0435\u0447\u0438\u0441\u043b\u0435\u043d\u0438\u0439<\/strong><\/p>\n<p>  <\/p>\n<ul>\n<li>\u0432\u0440\u0435\u043c\u0435\u043d\u0430 \u0436\u0438\u0437\u043d\u0438 \u0441\u0441\u044b\u043b\u043e\u0447\u043d\u044b\u0445 \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u043e\u0432 \u0443\u043a\u0430\u0437\u044b\u0432\u0430\u044e\u0442\u0441\u044f \u043f\u043e\u0441\u043b\u0435 <code>&amp;<\/code><\/li>\n<li>\u0432\u0440\u0435\u043c\u0435\u043d\u0430 \u0436\u0438\u0437\u043d\u0438 \u0443\u043a\u0430\u0437\u044b\u0432\u0430\u044e\u0442\u0441\u044f \u043a\u0430\u043a \u043e\u0431\u0449\u0438\u0435 \u0442\u0438\u043f\u044b \u043f\u043e\u0441\u043b\u0435 \u043d\u0430\u0437\u0432\u0430\u043d\u0438\u0439 \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\/\u043f\u0435\u0440\u0435\u0447\u0438\u0441\u043b\u0435\u043d\u0438\u0439<\/li>\n<\/ul>\n<p>  <\/p>\n<pre><code class=\"rust\">\/\/ \u041e\u0434\u0438\u043d \u044d\u043b\u0435\u043c\u0435\u043d\u0442 \/\/ \u0414\u0430\u043d\u043d\u044b\u0435 `x` \u0434\u043e\u043b\u0436\u043d\u044b \u0436\u0438\u0442\u044c, \u043a\u0430\u043a \u043c\u0438\u043d\u0438\u043c\u0443\u043c, \u0442\u0430\u043a\u0436\u0435 \u0434\u043e\u043b\u0433\u043e, \u043a\u0430\u043a \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0430 struct Struct&lt;'a> {     x: &amp;'a str }  \/\/ \u041d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u043e\u0432 \/\/ \u0414\u0430\u043d\u043d\u044b\u0435 `x` \u0438 `y` \u0434\u043e\u043b\u0436\u043d\u044b \u0436\u0438\u0442\u044c, \u043a\u0430\u043a \u043c\u0438\u043d\u0438\u043c\u0443\u043c, \u0442\u0430\u043a\u0436\u0435 \u0434\u043e\u043b\u0433\u043e, \u043a\u0430\u043a \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0430 struct Struct&lt;'a> {     x: &amp;'a str,     y: &amp;'a str }  \/\/ \u041f\u0435\u0440\u0435\u0447\u0438\u0441\u043b\u0435\u043d\u0438\u0435 \u0441 \u043e\u0434\u043d\u0438\u043c \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u043e\u043c\/\u0432\u0430\u0440\u0438\u0430\u043d\u0442\u043e\u043c \/\/ \u0414\u0430\u043d\u043d\u044b\u0435 \u0432\u0430\u0440\u0438\u0430\u043d\u0442\u0430 \u0434\u043e\u043b\u0436\u043d\u044b \u0436\u0438\u0442\u044c, \u043a\u0430\u043a \u043c\u0438\u043d\u0438\u043c\u0443\u043c, \u0442\u0430\u043a\u0436\u0435 \u0434\u043e\u043b\u0433\u043e, \u043a\u0430\u043a \u043f\u0435\u0440\u0435\u0447\u0438\u0441\u043b\u0435\u043d\u0438\u0435 enum Enum&lt;'a> {     Variant(&amp;'a Type) }<\/code><\/pre>\n<p>  <\/p>\n<p><strong>3. \u0412 \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044f\u0445 \u0438 \u0442\u0440\u0435\u0439\u0442\u0430\u0445<\/strong><\/p>\n<p>  <\/p>\n<pre><code class=\"rust\">struct Struct&lt;'a> {     x: &amp;'a str } \/\/ \u0414\u0430, \u0446\u0435\u043b\u044b\u0445 3 \u043e\u0431\u0449\u0438\u0445 \u0442\u0438\u043f\u0430 impl&lt;'a> Struct&lt;'a> {     fn function&lt;'a>(&amp;self) -> &amp;'a str {         self.x     } }  struct Struct&lt;'a> {     x: &amp;'a str,     y: &amp;'a str } impl&lt;'a> Struct&lt;'a> {     fn new(x: &amp;'a str, y: &amp;'a str) -> Struct&lt;'a> { \/\/ `&lt;'a>` \u043f\u043e\u0441\u043b\u0435 `new` \u043c\u043e\u0436\u043d\u043e \u043e\u043f\u0443\u0441\u0442\u0438\u0442\u044c, \u043f\u043e\u0441\u043a\u043e\u043b\u044c\u043a\u0443 \u043e\u043d\u043e \u0435\u0441\u0442\u044c \u0443 `impl`         Struct {             x : x,             y : y         }     } }  \/\/ \u041e\u0434\u043d\u043e \u0438 \u0442\u043e\u0436\u0435 impl&lt;'a> Trait&lt;'a> for Type impl&lt;'a> Trait for Type&lt;'a><\/code><\/pre>\n<p>  <\/p>\n<h4 id=\"neyavnoe-vyvedenie-vremeni-zhizni\">\u041d\u0435\u044f\u0432\u043d\u043e\u0435 \u0432\u044b\u0432\u0435\u0434\u0435\u043d\u0438\u0435 \u0432\u0440\u0435\u043c\u0435\u043d\u0438 \u0436\u0438\u0437\u043d\u0438<\/h4>\n<p>  <\/p>\n<p>\u041d\u0435\u044f\u0432\u043d\u043e\u0435 \u0432\u044b\u0432\u0435\u0434\u0435\u043d\u0438\u0435 \u0432\u0440\u0435\u043c\u0435\u043d\u0438 \u0436\u0438\u0437\u043d\u0438 (lifetime elision) \u2014 \u044d\u0442\u043e \u043f\u0440\u043e\u0446\u0435\u0441\u0441 \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u043e\u0433\u043e \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u0438\u044f \u0432\u0440\u0435\u043c\u0435\u043d \u0436\u0438\u0437\u043d\u0438 \u043e\u0431\u0449\u0438\u0445 \u043f\u0430\u0442\u0442\u0435\u0440\u043d\u043e\u0432 \u043a\u043e\u043c\u043f\u0438\u043b\u044f\u0442\u043e\u0440\u043e\u043c.<\/p>\n<p>  <\/p>\n<p>\u0412 \u043d\u0430\u0441\u0442\u043e\u044f\u0449\u0435\u0435 \u0432\u0440\u0435\u043c\u044f \u043d\u0435\u044f\u0432\u043d\u043e\u0435 \u0432\u044b\u0432\u0435\u0434\u0435\u043d\u0438\u0435 \u0432\u0440\u0435\u043c\u0435\u043d\u0438 \u0436\u0438\u0437\u043d\u0438 \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u0435\u0442\u0441\u044f \u0442\u043e\u043b\u044c\u043a\u043e \u0434\u043b\u044f <code>fn<\/code>. \u0412 \u0431\u0443\u0434\u0443\u0449\u0435\u043c \u043e\u043d\u043e \u0442\u0430\u043a\u0436\u0435 \u0431\u0443\u0434\u0435\u0442 \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u0442\u044c\u0441\u044f \u0434\u043b\u044f <code>impl<\/code>.<\/p>\n<p>  <\/p>\n<p>\u0412\u0440\u0435\u043c\u0435\u043d\u0430 \u0436\u0438\u0437\u043d\u0438 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u0438\u0439 <code>fn<\/code> \u043c\u043e\u0433\u0443\u0442 \u0431\u044b\u0442\u044c \u0432\u044b\u0432\u0435\u0434\u0435\u043d\u044b \u043d\u0435\u044f\u0432\u043d\u043e, \u0435\u0441\u043b\u0438<\/p>\n<p>  <\/p>\n<ul>\n<li>\u0442\u043e\u043b\u044c\u043a\u043e \u043e\u0434\u0438\u043d \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440 \u0438\u0437 \u0441\u043f\u0438\u0441\u043a\u0430 \u043f\u0435\u0440\u0435\u0434\u0430\u0435\u0442\u0441\u044f \u043f\u043e \u0441\u0441\u044b\u043b\u043a\u0435<\/li>\n<li>\u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u043e\u043c \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f <code>&amp;self<\/code> \u0438\u043b\u0438 <code>&amp;mut self<\/code><\/li>\n<\/ul>\n<p>  <\/p>\n<pre><code class=\"rust\">fn triple(x: &amp;u64) -> u64 { \/\/ \u0442\u043e\u043b\u044c\u043a\u043e \u043e\u0434\u0438\u043d \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440 \u043f\u0435\u0440\u0435\u0434\u0430\u0435\u0442\u0441\u044f \u043f\u043e \u0441\u0441\u044b\u043b\u043a\u0435     x * 3 }  fn filter(x: u8, y: &amp;str) -> &amp;str { \/\/ \u0442\u043e\u043b\u044c\u043a\u043e \u043e\u0434\u0438\u043d \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440 \u043f\u0435\u0440\u0435\u0434\u0430\u0435\u0442\u0441\u044f \u043f\u043e \u0441\u0441\u044b\u043b\u043a\u0435     if x > 5 { y } else { \"invalid inputs\" } }  struct Player&lt;'a> {     id: u8,     name: &amp;'a str }     impl&lt;'a> Player&lt;'a> { \/\/ \u043d\u0435\u044f\u0432\u043d\u043e\u0435 \u0432\u044b\u0432\u0435\u0434\u0435\u043d\u0438\u0435 \u0432\u0440\u0435\u043c\u0435\u043d\u0438 \u0436\u0438\u0437\u043d\u0438 \u0434\u043b\u044f `impl` \u043f\u043e\u043a\u0430 \u043d\u0435 \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u0435\u0442\u0441\u044f         fn new(id: u8, name: &amp;str) -> Player { \/\/ \u0442\u043e\u043b\u044c\u043a\u043e \u043e\u0434\u0438\u043d \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440 \u043f\u0435\u0440\u0435\u0434\u0430\u0435\u0442\u0441\u044f \u043f\u043e \u0441\u0441\u044b\u043b\u043a\u0435             Player {                 id : id,                 name : name             }         }          fn heading_text(&amp;self) -> String { \/\/ \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u043e\u043c \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f `&amp;self` (\u0438\u043b\u0438 `&amp;mut self`)             format!(\"{}: {}\", self.id, self.name)         }     }  fn main() {     let player1 = Player::new(1, \"Serena Williams\");     let player1_heading_text = player1.heading_text()     println!(\"{}\", player1_heading_text); }<\/code><\/pre>\n<p>  <\/p>\n<p>\u0412 \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u0435 \u043d\u0435\u044f\u0432\u043d\u043e\u0433\u043e \u0432\u044b\u0432\u0435\u0434\u0435\u043d\u0438\u044f \u0432\u0440\u0435\u043c\u0435\u043d\u0438 \u0436\u0438\u0437\u043d\u0438:<\/p>\n<p>  <\/p>\n<ul>\n<li>\u043a\u0430\u0436\u0434\u044b\u0439 \u0430\u0440\u0433\u0443\u043c\u0435\u043d\u0442, \u043f\u0435\u0440\u0435\u0434\u0430\u0432\u0430\u0435\u043c\u044b\u0439 \u043f\u043e \u0441\u0441\u044b\u043b\u043a\u0435, \u043f\u043e\u043b\u0443\u0447\u0430\u0435\u0442 \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u043e\u0435 \u0432\u0440\u0435\u043c\u044f \u0436\u0438\u0437\u043d\u0438: <code>(x: &amp;str, y: &amp;str)<\/code> -> <code>&lt;'a, 'b>(x: &amp;'a str, y: &amp;'b str)<\/code><\/li>\n<li>\u0435\u0441\u043b\u0438 \u0441\u043f\u0438\u0441\u043e\u043a \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u043e\u0432 \u0441\u043e\u0434\u0435\u0440\u0436\u0438\u0442 \u0442\u043e\u043b\u044c\u043a\u043e \u043e\u0434\u0438\u043d \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440, \u043f\u0435\u0440\u0435\u0434\u0430\u0432\u0430\u0435\u043c\u044b\u0439 \u043f\u043e \u0441\u0441\u044b\u043b\u043a\u0435, \u0435\u0433\u043e \u0432\u0440\u0435\u043c\u044f \u0436\u0438\u0437\u043d\u0438 \u043f\u0440\u0438\u0441\u0432\u0430\u0438\u0432\u0430\u0435\u0442\u0441\u044f \u0432\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u043c\u043e\u043c\u0443 \u0444\u0443\u043d\u043a\u0446\u0438\u0435\u0439 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044e: <code>(x: i32, y: &amp;str) -> &amp;str<\/code> -> <code>&lt;'a>(x: i32, y: &amp;'a str) -> &amp;'a str<\/code><\/li>\n<li>\u0434\u0430\u0436\u0435 \u0435\u0441\u043b\u0438 \u043f\u043e \u0441\u0441\u044b\u043b\u043a\u0435 \u043f\u0435\u0440\u0435\u0434\u0430\u0435\u0442\u0441\u044f \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u0430\u0440\u0433\u0443\u043c\u0435\u043d\u0442\u043e\u0432, \u043d\u043e \u043e\u0434\u043d\u0438\u043c \u0438\u0437 \u0430\u0440\u0433\u0443\u043c\u0435\u043d\u0442\u043e\u0432 \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f <code>&amp;self<\/code> \u0438\u043b\u0438 <code>&amp;mut self<\/code>, \u0432\u0440\u0435\u043c\u044f \u0436\u0438\u0437\u043d\u0438 \u044d\u0442\u043e\u0433\u043e \u0430\u0440\u0433\u0443\u043c\u0435\u043d\u0442\u0430 \u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u0441\u044f \u0432\u0440\u0435\u043c\u0435\u043d\u0435\u043c \u0436\u0438\u0437\u043d\u0438 \u0432\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u043c\u043e\u0433\u043e \u043c\u0435\u0442\u043e\u0434\u043e\u043c \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f: <code>impl Impl { fn function(&amp;self, x: &amp;str) -> &amp;str {} }<\/code> -> <code>impl&lt;'a> Impl&lt;'a> { fn function(&amp;'a self, x: &amp;'b str) -> &amp;'a str {} }<\/code><\/li>\n<li>\u0432\u043e \u0432\u0441\u0435\u0445 \u043e\u0441\u0442\u0430\u043b\u044c\u043d\u044b\u0445 \u0441\u043b\u0443\u0447\u0430\u044f\u0445 \u0432\u0440\u0435\u043c\u044f \u0436\u0438\u0437\u043d\u0438 \u0434\u043e\u043b\u0436\u043d\u043e \u0443\u043a\u0430\u0437\u044b\u0432\u0430\u0442\u044c\u0441\u044f \u044f\u0432\u043d\u043e<\/li>\n<\/ul>\n<p>  <\/p>\n<h4 id=\"annotacii-static\">\u0410\u043d\u043d\u043e\u0442\u0430\u0446\u0438\u0438 <code>'static<\/code><\/h4>\n<p>  <\/p>\n<p>\u0410\u043d\u043d\u043e\u0442\u0430\u0446\u0438\u044f \u0432\u0440\u0435\u043c\u0435\u043d\u0438 \u0436\u0438\u0437\u043d\u0438 <code>'static<\/code> \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u0437\u0430\u0440\u0435\u0437\u0435\u0440\u0432\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u043e\u0439. \u0422\u0430\u043a\u0438\u0435 \u0441\u0441\u044b\u043b\u043a\u0438 \u044f\u0432\u043b\u044f\u044e\u0442\u0441\u044f \u0432\u0430\u043b\u0438\u0434\u043d\u044b\u043c\u0438 \u043d\u0430 \u043f\u0440\u043e\u0442\u044f\u0436\u0435\u043d\u0438\u0438 \u0432\u0441\u0435\u0439 \u0440\u0430\u0431\u043e\u0442\u044b \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u044b. \u041e\u043d\u0438 \u0441\u043e\u0445\u0440\u0430\u043d\u044f\u044e\u0442\u0441\u044f \u0432 \u0441\u0435\u0433\u043c\u0435\u043d\u0442\u0435 \u0434\u0430\u043d\u043d\u044b\u0445 \u0438\u0441\u043f\u043e\u043b\u043d\u044f\u0435\u043c\u043e\u0433\u043e \u0444\u0430\u0439\u043b\u0430 \u0438 \u0438\u043c\u0435\u044e\u0442 \u0433\u043b\u043e\u0431\u0430\u043b\u044c\u043d\u0443\u044e \u043e\u0431\u043b\u0430\u0441\u0442\u044c \u0432\u0438\u0434\u0438\u043c\u043e\u0441\u0442\u0438 (\u043d\u0435 \u043c\u043e\u0433\u0443\u0442 \u0432\u044b\u0439\u0442\u0438 \u0437\u0430 \u043f\u0440\u0435\u0434\u0435\u043b\u044b \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\"> \/\/ \u041a\u043e\u043d\u0441\u0442\u0430\u043d\u0442\u0430 \u0441 \u0432\u0440\u0435\u043c\u0435\u043d\u0435\u043c \u0436\u0438\u0437\u043d\u0438 `'static`  static N: i32 = 5;  let a = \"Hello, world.\"; \/\/ a: &amp;'static str  fn index() -> &amp;'static str { \/\/ \u043d\u0435 \u043d\u0443\u0436\u043d\u043e \u0443\u043a\u0430\u0437\u044b\u0432\u0430\u0442\u044c `&lt;'static>` \u043f\u043e\u0441\u043b\u0435 \u043d\u0430\u0437\u0432\u0430\u043d\u0438\u044f \u0444\u0443\u043d\u043a\u0446\u0438\u0438     \"Hello, world!\" }<\/code><\/pre>\n<p>  <\/p>\n<h4 id=\"esche-neskolko-primerov\">\u0415\u0449\u0435 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u043f\u0440\u0438\u043c\u0435\u0440\u043e\u0432<\/h4>\n<p>  <\/p>\n<pre><code class=\"rust\">fn greeting&lt;'a>() -> &amp;'a str {   \"Hi!\" }  fn fullname&lt;'a>(fname: &amp;'a str, lname: &amp;'a str) -> String {   format!(\"{} {}\", fname, lname) }  struct Person&lt;'a> {     fname: &amp;'a str,     lname: &amp;'a str } impl&lt;'a> Person&lt;'a> {     fn new(fname: &amp;'a str, lname: &amp;'a str) -> Person&lt;'a> { \/\/ `&lt;'a>` \u043f\u043e\u0441\u043b\u0435 `new` \u043c\u043e\u0436\u043d\u043e \u043e\u043f\u0443\u0441\u0442\u0438\u0442\u044c, \u043f\u043e\u0441\u043a\u043e\u043b\u044c\u043a\u0443 \u043e\u043d\u043e \u0435\u0441\u0442\u044c \u0443 `impl`         Person {             fname : fname,             lname : lname         }     }      fn fullname(&amp;self) -> String {         format!(\"{} {}\", self.fname , self.lname)     } }  fn main() {     let player = Person::new(\"Serena\", \"Williams\");     let player_fullname = player.fullname();      println!(\"Player: {}\", player_fullname); }<\/code><\/pre>\n<p>  <\/p>\n<p>\u042d\u0442\u043e \u043a\u043e\u043d\u0435\u0446 \u043f\u0435\u0440\u0432\u043e\u0439 \u0447\u0430\u0441\u0442\u0438 \u0448\u043f\u0430\u0440\u0433\u0430\u043b\u043a\u0438.<\/p>\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\/785096\/\"> https:\/\/habr.com\/ru\/articles\/785096\/<\/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 \u0431\u043e\u043b\u044c\u0448\u043e\u0439 \u0448\u043f\u0430\u0440\u0433\u0430\u043b\u043a\u0438 \u043f\u043e <a href=\"https:\/\/www.rust-lang.org\/ru\/\">Rust<\/a>.<\/p>\n<p>  <\/p>\n<p><a href=\"https:\/\/habr.com\/ru\/companies\/timeweb\/articles\/787924\/\">\u0412\u0442\u043e\u0440\u0430\u044f \u0447\u0430\u0441\u0442\u044c<\/a>.<\/p>\n<p>  <\/p>\n<p><a href=\"https:\/\/my-js.org\/docs\/cheatsheet\/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>\u041e\u0431\u0440\u0430\u0442\u0438\u0442\u0435 \u0432\u043d\u0438\u043c\u0430\u043d\u0438\u0435: \u0448\u043f\u0430\u0440\u0433\u0430\u043b\u043a\u0430 \u0440\u0430\u0441\u0441\u0447\u0438\u0442\u0430\u043d\u0430 \u043d\u0430 \u043b\u044e\u0434\u0435\u0439, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0445\u043e\u0440\u043e\u0448\u043e \u0437\u043d\u0430\u044e\u0442 \u043b\u044e\u0431\u043e\u0439 \u0441\u043e\u0432\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0439 \u044f\u0437\u044b\u043a \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f, \u0430 \u043d\u0435 \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>  <\/p>\n<p>\u0422\u0430\u043a\u0436\u0435 \u043d\u0430\u0441\u0442\u043e\u044f\u0442\u0435\u043b\u044c\u043d\u043e \u0440\u0435\u043a\u043e\u043c\u0435\u043d\u0434\u0443\u0435\u0442\u0441\u044f \u0445\u043e\u0442\u044f \u0431\u044b \u043f\u043e \u0434\u0438\u0430\u0433\u043e\u043d\u0430\u043b\u0438 \u043f\u0440\u043e\u0447\u0438\u0442\u0430\u0442\u044c \u0437\u0430\u043c\u0435\u0447\u0430\u0442\u0435\u043b\u044c\u043d\u044b\u0439 <a href=\"https:\/\/doc.rust-lang.ru\/book\/\">\u0423\u0447\u0435\u0431\u043d\u0438\u043a \u043f\u043e Rust<\/a> (\u043d\u0430 \u0440\u0443\u0441\u0441\u043a\u043e\u043c \u044f\u0437\u044b\u043a\u0435).<\/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-364781","post","type-post","status-publish","format-standard","hentry"],"_links":{"self":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/364781","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=364781"}],"version-history":[{"count":0,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/364781\/revisions"}],"wp:attachment":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=364781"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=364781"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=364781"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}