{"id":308421,"date":"2020-08-13T15:00:29","date_gmt":"2020-08-13T15:00:29","guid":{"rendered":"http:\/\/savepearlharbor.com\/?p=308421"},"modified":"-0001-11-30T00:00:00","modified_gmt":"-0001-11-29T21:00:00","slug":"","status":"publish","type":"post","link":"https:\/\/savepearlharbor.com\/?p=308421","title":{"rendered":"\u0420\u0430\u0441\u043f\u0440\u043e\u0441\u0442\u0440\u0430\u043d\u0451\u043d\u043d\u044b\u0435 \u0437\u0430\u0431\u043b\u0443\u0436\u0434\u0435\u043d\u0438\u044f \u043e \u0432\u0440\u0435\u043c\u0435\u043d\u0430\u0445 \u0436\u0438\u0437\u043d\u0438 \u0432 Rust"},"content":{"rendered":"\n<div class=\"post__text post__text-html post__text_v1\" id=\"post-content-body\" data-io-article-url=\"https:\/\/habr.com\/ru\/post\/515034\/\">\n<p><em>(\u043f\u0440\u0438\u043c. \u043f\u0435\u0440\u0435\u0432\u043e\u0434\u0447\u0438\u043a\u0430: \u0432\u0440\u0435\u043c\u0435\u043d\u0430 \u0436\u0438\u0437\u043d\u0438 (lifetimes) \u2014 \u044d\u0442\u043e \u043e\u0434\u043d\u0430 \u0438\u0437 \u0441\u0430\u043c\u044b\u0445 \u0437\u0430\u043f\u0443\u0442\u0430\u043d\u043d\u044b\u0445 \u0432\u0435\u0449\u0435\u0439 \u0432 Rust, \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u0447\u0430\u0441\u0442\u043e \u0432\u044b\u0437\u044b\u0432\u0430\u0435\u0442 \u0437\u0430\u0442\u0440\u0443\u0434\u043d\u0435\u043d\u0438\u0435 \u0443 \u043d\u043e\u0432\u0438\u0447\u043a\u043e\u0432, \u0434\u0430\u0436\u0435 \u043d\u0435 \u0441\u043c\u043e\u0442\u0440\u044f \u043d\u0430 <a href=\"https:\/\/doc.rust-lang.org\/book\" rel=\"nofollow\">\u043e\u0444\u0438\u0446\u0438\u0430\u043b\u044c\u043d\u0443\u044e \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u044e<\/a>. \u0420\u0430\u0437\u044a\u044f\u0441\u043d\u0435\u043d\u0438\u044f \u043f\u043e \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u044b\u043c \u0430\u0441\u043f\u0435\u043a\u0442\u0430\u043c \u0432\u0440\u0435\u043c\u0451\u043d \u0436\u0438\u0437\u043d\u0438 \u0435\u0441\u0442\u044c, \u043d\u043e \u043e\u043d\u0438 \u0432\u0441\u0435 \u0440\u0430\u0437\u0431\u0440\u043e\u0441\u0430\u043d\u044b \u043f\u043e \u0440\u0430\u0437\u043d\u044b\u043c \u0438\u0441\u0442\u043e\u0447\u043d\u0438\u043a\u0430\u043c \u0438 \u043e\u0442\u0432\u0435\u0442\u0430\u043c \u043d\u0430 Stack Overflow. \u0410\u0432\u0442\u043e\u0440 \u0441\u0442\u0430\u0442\u044c\u0438 \u0441\u043e\u0431\u0440\u0430\u043b \u0432 \u043e\u0434\u043d\u043e\u043c \u043c\u0435\u0441\u0442\u0435 \u0438 \u0440\u0430\u0437\u044a\u044f\u0441\u043d\u0438\u043b \u043c\u043d\u043e\u0436\u0435\u0441\u0442\u0432\u043e \u0441\u0432\u044f\u0437\u0430\u043d\u043d\u044b\u0445 \u0441 \u0432\u0440\u0435\u043c\u0435\u043d\u0430\u043c\u0438 \u0436\u0438\u0437\u043d\u0438 \u0432\u043e\u043f\u0440\u043e\u0441\u043e\u0432, \u0447\u0442\u043e \u0438 \u0434\u0435\u043b\u0430\u0435\u0442 \u044d\u0442\u0443 \u0441\u0442\u0430\u0442\u044c\u044e \u0441\u0442\u043e\u043b\u044c \u0446\u0435\u043d\u043d\u043e\u0439 (\u044f \u0438 \u0441\u0430\u043c \u043f\u043e\u0447\u0435\u0440\u043f\u043d\u0443\u043b \u043d\u043e\u0432\u043e\u0435 \u0434\u043b\u044f \u0441\u0435\u0431\u044f \u043e\u0442\u0441\u044e\u0434\u0430). \u042f \u0440\u0435\u0448\u0438\u043b \u043f\u0435\u0440\u0435\u0432\u0435\u0441\u0442\u0438 \u0435\u0451, \u0447\u0442\u043e\u0431\u044b \u0434\u0430\u0442\u044c \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u044c \u043f\u0440\u043e\u0447\u0438\u0442\u0430\u0442\u044c \u0435\u0451 \u0442\u0435\u043c, \u043a\u0442\u043e \u043d\u0435 \u0432\u043b\u0430\u0434\u0435\u0435\u0442 \u0430\u043d\u0433\u043b\u0438\u0439\u0441\u043a\u0438\u043c \u0432 \u0434\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e\u0439 \u0441\u0442\u0435\u043f\u0435\u043d\u0438, \u0447\u0442\u043e\u0431\u044b \u0441\u0432\u043e\u0431\u043e\u0434\u043d\u043e \u0447\u0438\u0442\u0430\u0442\u044c \u043e\u0440\u0438\u0433\u0438\u043d\u0430\u043b, \u0430 \u0442\u0430\u043a\u0436\u0435 \u0434\u043b\u044f \u0442\u043e\u0433\u043e, \u0447\u0442\u043e\u0431\u044b \u043f\u043e\u0432\u044b\u0441\u0438\u0442\u044c \u0438\u0437\u0432\u0435\u0441\u0442\u043d\u043e\u0441\u0442\u044c \u044d\u0442\u043e\u0439 \u0441\u0442\u0430\u0442\u044c\u0438 \u0441\u0440\u0435\u0434\u0438 \u0440\u0443\u0441\u0441\u043a\u043e\u044f\u0437\u044b\u0447\u043d\u043e\u0433\u043e Rust-\u0441\u043e\u043e\u0431\u0449\u0435\u0441\u0442\u0432\u0430)<\/em><\/p>\n<p>  <\/p>\n<p><em>19 \u043c\u0430\u044f 2020 \u0433. \u00b7 37 \u043c\u0438\u043d\u0443\u0442 \u00b7 #rust \u00b7 # lifetimes<\/em><\/p>\n<p><a name=\"habracut\"><\/a>  <\/p>\n<p><strong>\u041e\u0433\u043b\u0430\u0432\u043b\u0435\u043d\u0438\u0435<\/strong><\/p>\n<p>  <\/p>\n<ul>\n<li><a href=\"#intro\">\u0412\u0441\u0442\u0443\u043f\u043b\u0435\u043d\u0438\u0435<\/a><\/li>\n<li><a href=\"#the-misconceptions\">\u0417\u0430\u0431\u043b\u0443\u0436\u0434\u0435\u043d\u0438\u044f<\/a><br \/> \n<ul>\n<li><a href=\"#1-t-only-contains-owned-types\"><code>1) T<\/code> \u0441\u043e\u0434\u0435\u0440\u0436\u0438\u0442 \u0442\u043e\u043b\u044c\u043a\u043e \u0432\u043b\u0430\u0434\u0435\u044e\u0449\u0438\u0435 \u0442\u0438\u043f\u044b<\/a><\/li>\n<li><a href=\"#2-if-t-static-then-t-must-be-valid-for-the-entire-program\"><code>2) \u0435\u0441\u043b\u0438 T: 'static<\/code>, \u0442\u043e <code>T<\/code> \u0434\u043e\u043b\u0436\u043d\u043e \u0436\u0438\u0442\u044c \u043d\u0430 \u043f\u0440\u043e\u0442\u044f\u0436\u0435\u043d\u0438\u0438 \u0432\u0441\u0435\u0433\u043e \u0432\u0440\u0435\u043c\u0435\u043d\u0438 \u0440\u0430\u0431\u043e\u0442\u044b \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u044b<\/a><\/li>\n<li><a href=\"#3-a-t-and-t-a-are-the-same-thing\"><code>3) &amp;'a T<\/code> \u0438 <code>T: 'a<\/code> \u2014 \u044d\u0442\u043e \u043e\u0434\u043d\u043e \u0438 \u0442\u043e \u0436\u0435<\/a><\/li>\n<li><a href=\"#4-my-code-isnt-generic-and-doesnt-have-lifetimes\">4) \u043c\u043e\u0439 \u043a\u043e\u0434 \u043d\u0435 \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u043e\u0431\u043e\u0431\u0449\u0451\u043d\u043d\u044b\u043c \u0438 \u043d\u0435 \u0438\u043c\u0435\u0435\u0442 \u0432\u0440\u0435\u043c\u0451\u043d \u0436\u0438\u0437\u043d\u0438<\/a><\/li>\n<li><a href=\"#5-if-it-compiles-then-my-lifetime-annotations-are-correct\">5) \u0435\u0441\u043b\u0438 \u043e\u043d\u043e \u043a\u043e\u043c\u043f\u0438\u043b\u0438\u0440\u0443\u0435\u0442\u0441\u044f, \u0442\u043e \u043c\u043e\u0438 \u0430\u043d\u043d\u043e\u0442\u0430\u0446\u0438\u0438 \u0432\u0440\u0435\u043c\u0451\u043d \u0436\u0438\u0437\u043d\u0438 \u0432\u0435\u0440\u043d\u044b<\/a><\/li>\n<li><a href=\"#6-boxed-trait-objects-dont-have-lifetimes\">6) \u0442\u0440\u0435\u0439\u0442-\u043e\u0431\u044a\u0435\u043a\u0442\u044b \u0437\u0430 \u0432\u043b\u0430\u0434\u0435\u044e\u0449\u0438\u043c\u0438 \u0443\u043a\u0430\u0437\u0430\u0442\u0435\u043b\u044f\u043c\u0438 \u043d\u0435 \u0438\u043c\u0435\u044e\u0442 \u0432\u0440\u0435\u043c\u0451\u043d \u0436\u0438\u0437\u043d\u0438<\/a><\/li>\n<li><a href=\"#7-compiler-error-messages-will-tell-me-how-to-fix-my-program\">7) \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u044f \u043e\u0431 \u043e\u0448\u0438\u0431\u043a\u0430\u0445 \u043a\u043e\u043c\u043f\u0438\u043b\u044f\u0446\u0438\u0438 \u0441\u043a\u0430\u0436\u0443\u0442 \u043c\u043d\u0435, \u043a\u0430\u043a \u0438\u0441\u043f\u0440\u0430\u0432\u0438\u0442\u044c \u043c\u043e\u044e \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0443<\/a><\/li>\n<li><a href=\"#8-lifetimes-can-grow-and-shrink-at-run-time\">8) \u0432\u0440\u0435\u043c\u0435\u043d\u0430 \u0436\u0438\u0437\u043d\u0438 \u043c\u043e\u0433\u0443\u0442 \u0440\u0430\u0441\u0442\u0438 \u0438 \u0441\u043e\u043a\u0440\u0430\u0449\u0430\u0442\u044c\u0441\u044f \u0432 \u0440\u0430\u043d\u0442\u0430\u0439\u043c\u0435<\/a><\/li>\n<li><a href=\"#9-downgrading-mut-refs-to-shared-refs-is-safe\">9) \u043e\u0441\u043b\u0430\u0431\u043b\u0435\u043d\u0438\u0435 mut-\u0441\u0441\u044b\u043b\u043e\u043a \u0434\u043e \u0440\u0430\u0437\u0434\u0435\u043b\u044f\u0435\u043c\u044b\u0445 \u0431\u0435\u0437\u043e\u043f\u0430\u0441\u043d\u043e<\/a><\/li>\n<li><a href=\"#10-closures-follow-the-same-lifetime-elision-rules-as-functions\">10) \u0437\u0430\u043c\u044b\u043a\u0430\u043d\u0438\u044f \u0441\u043b\u0435\u0434\u0443\u044e\u0442 \u0442\u0435\u043c \u0436\u0435 \u043f\u0440\u0430\u0432\u0438\u043b\u0430\u043c \u043d\u0435\u044f\u0432\u043d\u043e\u0433\u043e \u0432\u044b\u0432\u043e\u0434\u0430 \u0432\u0440\u0435\u043c\u0451\u043d \u0436\u0438\u0437\u043d\u0438 (lifetime elision), \u0447\u0442\u043e \u0438 \u0444\u0443\u043d\u043a\u0446\u0438\u0438<\/a><\/li>\n<li><a href=\"#11-static-refs-can-always-be-coerced-into-a-refs\"><code>11) 'static<\/code> \u0441\u0441\u044b\u043b\u043a\u0438 \u0432\u0441\u0435\u0433\u0434\u0430 \u043c\u043e\u0436\u043d\u043e \u043f\u0440\u0438\u0432\u0435\u0441\u0442\u0438 \u043a <code>'a<\/code><\/a><\/li>\n<\/ul>\n<\/li>\n<li><a href=\"#conclusion\">\u0417\u0430\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435<\/a><\/li>\n<li><a href=\"#discuss\">\u041e\u0431\u0441\u0443\u0436\u0434\u0435\u043d\u0438\u0435<\/a><\/li>\n<li><a href=\"#follow\">\u041a\u043e\u043d\u0442\u0430\u043a\u0442\u044b<\/a><\/li>\n<li><a href=\"#further-reading\">\u0414\u0430\u043b\u044c\u043d\u0435\u0439\u0448\u0435\u0435 \u0447\u0442\u0435\u043d\u0438\u0435<\/a><\/li>\n<\/ul>\n<p>  <\/p>\n<h2 id=\"anchorintroanchor-vstuplenie\"><a name=\"intro\"><\/a> \u0412\u0441\u0442\u0443\u043f\u043b\u0435\u043d\u0438\u0435<\/h2>\n<p>  <\/p>\n<p>\u041a\u043e\u0433\u0434\u0430-\u0442\u043e \u044f \u0431\u044b\u043b \u043f\u043e\u0434\u0432\u0435\u0440\u0436\u0435\u043d \u0432\u0441\u0435\u043c \u044d\u0442\u0438\u043c \u0437\u0430\u0431\u043b\u0443\u0436\u0434\u0435\u043d\u0438\u044f\u043c, \u0441\u0435\u0439\u0447\u0430\u0441 \u0436\u0435 \u0432\u0438\u0436\u0443, \u043a\u0430\u043a \u043c\u043d\u043e\u0433\u0438\u0435 \u043d\u043e\u0432\u0438\u0447\u043a\u0438 \u0431\u043e\u0440\u044e\u0442\u0441\u044f \u0441 \u043d\u0438\u043c\u0438. \u041d\u0435\u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u043c\u044b\u0435 \u043c\u043d\u043e\u0439 \u0442\u0435\u0440\u043c\u0438\u043d\u044b \u043c\u043e\u0433\u0443 \u0431\u044b\u0442\u044c \u043d\u0435\u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043d\u044b\u043c\u0438, \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u0434\u043b\u044f \u043e\u0431\u043e\u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u0432\u043a\u043b\u0430\u0434\u044b\u0432\u0430\u0435\u043c\u043e\u0433\u043e \u0432 \u043d\u0438\u0445 \u0441\u043c\u044b\u0441\u043b\u0430 \u044f \u043f\u0440\u0438\u0432\u043e\u0436\u0443 \u0442\u0430\u0431\u043b\u0438\u0446\u0443 \u0441\u043e \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f\u043c\u0438.<\/p>\n<p>  <\/p>\n<div class=\"scrollable-table\">\n<table>\n<thead>\n<tr>\n<th>\u0422\u0435\u0440\u043c\u0438\u043d<\/th>\n<th>\u0417\u043d\u0430\u0447\u0435\u043d\u0438\u0435<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td><code>T<\/code><\/td>\n<td>1) \u043c\u043d\u043e\u0436\u0435\u0441\u0442\u0432\u043e \u0432\u0441\u0435\u0445 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u044b\u0445 \u0442\u0438\u043f\u043e\u0432 <em>\u0438\u043b\u0438<\/em> <br \/>  2) \u043d\u0435\u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0442\u0438\u043f \u0438\u0437 \u044d\u0442\u043e\u0433\u043e \u043c\u043d\u043e\u0436\u0435\u0441\u0442\u0432\u0430<\/td>\n<\/tr>\n<tr>\n<td>\u0432\u043b\u0430\u0434\u0435\u044e\u0449\u0438\u0439 \u0442\u0438\u043f<\/td>\n<td>\u043d\u0435\u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0442\u0438\u043f, \u043d\u0435 \u044f\u0432\u043b\u044f\u044e\u0449\u0438\u0439\u0441\u044f \u0441\u0441\u044b\u043b\u043a\u043e\u0439, \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, <code>i32<\/code>, <code>String<\/code>, <code>Vec<\/code> \u0438 \u0442. \u0434.<\/td>\n<\/tr>\n<tr>\n<td>1) \u0437\u0430\u0438\u043c\u0441\u0442\u0432\u043e\u0432\u0430\u043d\u043d\u044b\u0439 \u0442\u0438\u043f <em>\u0438\u043b\u0438<\/em> <br \/>  2) \u0441\u0441\u044b\u043b\u043e\u0447\u043d\u044b\u0439 \u0442\u0438\u043f<\/td>\n<td>\u043d\u0435\u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0441\u0441\u044b\u043b\u043e\u0447\u043d\u044b\u0439 \u0442\u0438\u043f, \u0432\u043d\u0435 \u0437\u0430\u0432\u0438\u0441\u0438\u043c\u043e\u0441\u0442\u0438 \u043e\u0442 \u0435\u0433\u043e \u0438\u0437\u043c\u0435\u043d\u044f\u0435\u043c\u043e\u0441\u0442\u0438, \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440 <code>&amp;i32<\/code>, <code>&amp;mut i32<\/code> \u0438 \u0442. \u0434.<\/td>\n<\/tr>\n<tr>\n<td>1) mut-\u0441\u0441\u044b\u043b\u043a\u0430 <em>\u0438\u043b\u0438<\/em> <br \/>  2) \u044d\u043a\u0441\u043a\u043b\u044e\u0437\u0438\u0432\u043d\u0430\u044f \u0441\u0441\u044b\u043b\u043a\u0430<\/td>\n<td>\u044d\u043a\u0441\u043a\u043b\u044e\u0437\u0438\u0432\u043d\u0430\u044f \u0438\u0437\u043c\u0435\u043d\u044f\u0435\u043c\u0430\u044f \u0441\u0441\u044b\u043b\u043a\u0430, \u0442.\u0435. <code>&amp;mut T<\/code><\/td>\n<\/tr>\n<tr>\n<td>1) immut-\u0441\u0441\u044b\u043b\u043a\u0430 <em>\u0438\u043b\u0438<\/em> <br \/>  2) \u0440\u0430\u0437\u0434\u0435\u043b\u044f\u0435\u043c\u0430\u044f \u0441\u0441\u044b\u043b\u043a\u0430<\/td>\n<td>\u0440\u0430\u0437\u0434\u0435\u043b\u044f\u0435\u043c\u0430\u044f \u043d\u0435\u0438\u0437\u043c\u0435\u043d\u044f\u0435\u043c\u0430\u044f \u0441\u0441\u044b\u043b\u043a\u0430, \u0442.\u0435. <code>&amp;T<\/code><\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<p>  <\/p>\n<h2 id=\"anchorthe-misconceptionsanchor-zabluzhdeniya\"><a name=\"the-misconceptions\"><\/a> \u0417\u0430\u0431\u043b\u0443\u0436\u0434\u0435\u043d\u0438\u044f<\/h2>\n<p>  <\/p>\n<p>\u0412 \u0434\u0432\u0443\u0445 \u0441\u043b\u043e\u0432\u0430\u0445: \u0432\u0440\u0435\u043c\u044f \u0436\u0438\u0437\u043d\u0438 \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u043e\u0439 \u2014 \u044d\u0442\u043e \u0441\u0442\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0438 \u043f\u0440\u043e\u0432\u0435\u0440\u044f\u0435\u043c\u044b\u0439 \u043a\u043e\u043c\u043f\u0438\u043b\u044f\u0442\u043e\u0440\u043e\u043c \u043f\u0440\u043e\u043c\u0435\u0436\u0443\u0442\u043e\u043a \u0432\u0440\u0435\u043c\u0435\u043d\u0438, \u0432 \u0442\u0435\u0447\u0435\u043d\u0438\u0435 \u043a\u043e\u0442\u043e\u0440\u043e\u0433\u043e \u0432\u0430\u043b\u0438\u0434\u043d\u044b \u043e\u0431\u0440\u0430\u0449\u0435\u043d\u0438\u044f \u043a \u0434\u0430\u043d\u043d\u044b\u043c, \u043b\u0435\u0436\u0430\u0449\u0438\u043c \u043f\u043e \u0430\u0434\u0440\u0435\u0441\u0443, \u0441\u043e\u0445\u0440\u0430\u043d\u0451\u043d\u043d\u043e\u0439 \u0432 \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u043e\u0439. \u0421\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0435 ~6500 \u0441\u043b\u043e\u0432 \u044f \u043f\u043e\u0442\u0440\u0430\u0447\u0443 \u043d\u0430 \u0431\u043e\u043b\u0435\u0435 \u043f\u043e\u0434\u0440\u043e\u0431\u043d\u044b\u0439 \u0440\u0430\u0441\u0441\u043a\u0430\u0437 \u043e \u0442\u043e\u043c, \u0433\u0434\u0435 \u043e\u0431\u044b\u0447\u043d\u043e \u0432\u043e\u0437\u043d\u0438\u043a\u0430\u0435\u0442 \u043f\u0443\u0442\u0430\u043d\u0438\u0446\u0430.<\/p>\n<p>  <\/p>\n<h3 id=\"anchor1-t-only-contains-owned-typesanchor-1-t-soderzhit-tolko-vladeyuschie-tipy\"><a name=\"1-t-only-contains-owned-types\"><\/a> 1) <code>T<\/code> \u0441\u043e\u0434\u0435\u0440\u0436\u0438\u0442 \u0442\u043e\u043b\u044c\u043a\u043e \u0432\u043b\u0430\u0434\u0435\u044e\u0449\u0438\u0435 \u0442\u0438\u043f\u044b<\/h3>\n<p>  <\/p>\n<p>\u042d\u0442\u043e \u0437\u0430\u0431\u043b\u0443\u0436\u0434\u0435\u043d\u0438\u0435 \u0431\u043e\u043b\u044c\u0448\u0435 \u043e\u0442\u043d\u043e\u0441\u0438\u0442\u0441\u044f \u043a \u043e\u0431\u043e\u0431\u0449\u0451\u043d\u043d\u044b\u043c \u0442\u0438\u043f\u0430\u043c, \u0447\u0435\u043c \u043a \u0432\u0440\u0435\u043c\u0435\u043d\u0430\u043c \u0436\u0438\u0437\u043d\u0438, \u043d\u043e \u043e\u0431\u043e\u0431\u0449\u0451\u043d\u043d\u044b\u0435 \u0442\u0438\u043f\u044b \u0438 \u0432\u0440\u0435\u043c\u0435\u043d\u0430 \u0436\u0438\u0437\u043d\u0438 \u0442\u0435\u0441\u043d\u043e \u0441\u0432\u044f\u0437\u0430\u043d\u044b \u0432 Rust, \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u043d\u0435\u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e \u0433\u043e\u0432\u043e\u0440\u0438\u0442\u044c \u043e\u0431 \u043e\u0434\u043d\u043e\u043c, \u043d\u0435 \u0433\u043e\u0432\u043e\u0440\u044f \u043e \u0434\u0440\u0443\u0433\u043e\u043c. \u0412 \u043b\u044e\u0431\u043e\u043c \u0441\u043b\u0443\u0447\u0430\u0435:<\/p>\n<p>  <\/p>\n<p>\u041a\u043e\u0433\u0434\u0430 \u044f \u0432\u043f\u0435\u0440\u0432\u044b\u0435 \u043d\u0430\u0447\u0430\u043b \u0438\u0437\u0443\u0447\u0430\u0442\u044c Rust, \u044f \u043f\u043e\u043d\u044f\u043b, \u0447\u0442\u043e <code>i32<\/code>, <code>&amp;i32<\/code> \u0438 <code>&amp;mut i32<\/code> \u2014 \u044d\u0442\u043e \u0440\u0430\u0437\u043d\u044b\u0435 \u0442\u0438\u043f\u044b. \u042f \u0442\u0430\u043a\u0436\u0435 \u043f\u043e\u043d\u044f\u043b, \u0447\u0442\u043e \u043d\u0435\u043a\u043e\u0442\u043e\u0440\u0430\u044f \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u0430\u044f \u0442\u0438\u043f\u0430 <code>T<\/code> \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u0442 \u0441\u043e\u0431\u043e\u0439 \u043c\u043d\u043e\u0436\u0435\u0441\u0442\u0432\u043e, \u043a\u043e\u0442\u043e\u0440\u043e\u0435 \u0441\u043e\u0434\u0435\u0440\u0436\u0438\u0442 \u0432\u0441\u0435 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u044b\u0435 \u0442\u0438\u043f\u044b. \u041e\u0434\u043d\u0430\u043a\u043e, \u043d\u0435\u0441\u043c\u043e\u0442\u0440\u044f \u043d\u0430 \u0442\u043e, \u0447\u0442\u043e \u044f \u043f\u043e\u043d\u0438\u043c\u0430\u043b \u043e\u0431\u0435 \u044d\u0442\u0438 \u0432\u0435\u0449\u0438 \u043f\u043e \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u0438, \u044f \u043d\u0435 \u043c\u043e\u0433 \u043f\u043e\u043d\u044f\u0442\u044c \u0438\u0445 \u0432 \u0441\u043e\u0432\u043e\u043a\u0443\u043f\u043d\u043e\u0441\u0442\u0438. \u042f \u043d\u0430\u0438\u0432\u043d\u043e \u043f\u043e\u043b\u0430\u0433\u0430\u043b, \u0447\u0442\u043e \u0432 Rust \u043e\u0431\u043e\u0431\u0449\u0451\u043d\u043d\u044b\u0435 \u0442\u0438\u043f\u044b \u0440\u0430\u0431\u043e\u0442\u0430\u044e\u0442 \u0442\u0430\u043a:<\/p>\n<p>  <\/p>\n<div class=\"scrollable-table\">\n<table>\n<thead>\n<tr>\n<th><\/th>\n<th><\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td><strong>\u041f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u0430\u044f \u0442\u0438\u043f\u0430<\/strong><\/td>\n<td><code>T<\/code><\/td>\n<td><code>&amp;T<\/code><\/td>\n<td><code>&amp;mut T<\/code><\/td>\n<\/tr>\n<tr>\n<td><strong>\u041f\u0440\u0438\u043c\u0435\u0440\u044b<\/strong><\/td>\n<td><code>i32<\/code><\/td>\n<td><code>&amp;i32<\/code><\/td>\n<td><code>&amp;mut i32<\/code><\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<p>  <\/p>\n<p><code>T<\/code> \u0441\u043e\u0434\u0435\u0440\u0436\u0438\u0442 \u0432\u0441\u0435 \u0432\u043b\u0430\u0434\u0435\u044e\u0449\u0438\u0435 \u0442\u0438\u043f\u044b. <code>&amp;T<\/code> \u0441\u043e\u0434\u0435\u0440\u0436\u0438\u0442 \u0432\u0441\u0435 \u043d\u0435\u0438\u0437\u043c\u0435\u043d\u044f\u0435\u043c\u043e \u0437\u0430\u0438\u043c\u0441\u0442\u0432\u043e\u0432\u0430\u043d\u043d\u044b\u0435 \u0442\u0438\u043f\u044b. <code>&amp;mut T<\/code> \u0441\u043e\u0434\u0435\u0440\u0436\u0438\u0442 \u0432\u0441\u0435 \u0438\u0437\u043c\u0435\u043d\u044f\u0435\u043c\u043e \u0437\u0430\u0438\u043c\u0441\u0442\u0432\u043e\u0432\u0430\u043d\u043d\u044b\u0435 \u0442\u0438\u043f\u044b. <code>T<\/code>, <code>&amp;T<\/code> \u0438 <code>&amp;mut T<\/code> \u2014 \u043d\u0435\u043f\u0435\u0440\u0435\u0441\u0435\u043a\u0430\u044e\u0449\u0438\u0435\u0441\u044f \u043a\u043e\u043d\u0435\u0447\u043d\u044b\u0435 \u043c\u043d\u043e\u0436\u0435\u0441\u0442\u0432\u0430. \u041a\u0440\u0430\u0441\u0438\u0432\u043e, \u043f\u0440\u043e\u0441\u0442\u043e, \u043a\u0440\u0430\u0442\u043a\u043e, \u043b\u0435\u0433\u043a\u043e, \u0438\u043d\u0442\u0443\u0438\u0442\u0438\u0432\u043d\u043e \u043f\u043e\u043d\u044f\u0442\u043d\u043e \u0438 \u0441\u043e\u0432\u0435\u0440\u0448\u0435\u043d\u043d\u043e \u043d\u0435\u043f\u0440\u0430\u0432\u0438\u043b\u044c\u043d\u043e. \u0412\u043e\u0442 \u043a\u0430\u043a \u0432 Rust \u043e\u0431\u043e\u0431\u0449\u0451\u043d\u043d\u044b\u0435 \u0442\u0438\u043f\u044b \u0440\u0430\u0431\u043e\u0442\u0430\u044e\u0442 \u043f\u043e-\u043d\u0430\u0441\u0442\u043e\u044f\u0449\u0435\u043c\u0443:<\/p>\n<p>  <\/p>\n<div class=\"scrollable-table\">\n<table>\n<thead>\n<tr>\n<th><\/th>\n<th><\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td><strong>\u041f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u0430\u044f \u0442\u0438\u043f\u0430<\/strong><\/td>\n<td><code>T<\/code><\/td>\n<td><code>&amp;T<\/code><\/td>\n<td><code>&amp;mut T<\/code><\/td>\n<\/tr>\n<tr>\n<td><strong>\u041f\u0440\u0438\u043c\u0435\u0440\u044b<\/strong><\/td>\n<td><code>i32<\/code>, <code>&amp;i32<\/code>, <code>&amp;mut i32<\/code>, <code>&amp;&amp;i32<\/code>, <code>&amp;mut &amp;mut i32<\/code>, &#8230;<\/td>\n<td><code>&amp;i32<\/code>, <code>&amp;&amp;i32<\/code>, <code>&amp;&amp;mut i32<\/code>, &#8230;<\/td>\n<td><code>&amp;mut i32<\/code>, <code>&amp;mut &amp;mut i32<\/code>, <code>&amp;mut &amp;i32<\/code>, &#8230;<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<p>  <\/p>\n<p><code>T<\/code>, <code>&amp;T<\/code> \u0438 <code>&amp;mut T<\/code> \u2014 \u0431\u0435\u0441\u043a\u043e\u043d\u0435\u0447\u043d\u044b\u0435 \u043c\u043d\u043e\u0436\u0435\u0441\u0442\u0432\u0430, \u0442\u0430\u043a \u043a\u0430\u043a \u0442\u0438\u043f \u043c\u043e\u0436\u043d\u043e \u0437\u0430\u0438\u043c\u0441\u0442\u0432\u043e\u0432\u0430\u0442\u044c \u0434\u043e \u0431\u0435\u0441\u043a\u043e\u043d\u0435\u0447\u043d\u043e\u0441\u0442\u0438. <code>T<\/code> \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u043d\u0430\u0434\u043c\u043d\u043e\u0436\u0435\u0441\u0442\u0432\u043e\u043c \u043e\u0431\u043e\u0438\u0445 <code>&amp;T<\/code> \u0438 <code>&amp;mut T<\/code>, \u0430 <code>&amp;T<\/code> \u0438 <code>&amp;mut T<\/code> \u2014 \u043d\u0435\u043f\u0435\u0440\u0435\u0441\u0435\u043a\u0430\u044e\u0449\u0438\u0435\u0441\u044f \u043c\u043d\u043e\u0436\u0435\u0441\u0442\u0432\u0430. \u0412\u043e\u0442 \u043f\u0430\u0440\u0430 \u043f\u0440\u0438\u043c\u0435\u0440\u043e\u0432, \u043f\u043e\u0434\u0442\u0432\u0435\u0440\u0436\u0434\u0430\u044e\u0449\u0438\u0445 \u044d\u0442\u0438 \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u0438\u044f:<\/p>\n<p>  <\/p>\n<pre><code class=\"rust\">trait Trait {}  impl&lt;T&gt; Trait for T {}  impl&lt;T&gt; Trait for &amp;T {} \/\/ \u043e\u0448\u0438\u0431\u043a\u0430 \u043a\u043e\u043c\u043f\u0438\u043b\u044f\u0446\u0438\u0438  impl&lt;T&gt; Trait for &amp;mut T {} \/\/ \u043e\u0448\u0438\u0431\u043a\u0430 \u043a\u043e\u043c\u043f\u0438\u043b\u044f\u0446\u0438\u0438<\/code><\/pre>\n<p>  <\/p>\n<p>\u041f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0430 \u0432\u044b\u0448\u0435 \u043d\u0435 \u043a\u043e\u043c\u043f\u0438\u043b\u0438\u0440\u0443\u0435\u0442\u0441\u044f, \u043a\u0430\u043a \u0438 \u043e\u0436\u0438\u0434\u0430\u043b\u043e\u0441\u044c:<\/p>\n<p>  <\/p>\n<pre><code class=\"rust\">error[E0119]: conflicting implementations of trait `Trait` for type `&amp;_`:  --&gt; src\/lib.rs:5:1   | 3 | impl&lt;T&gt; Trait for T {}   | ------------------- first implementation here 4 | 5 | impl&lt;T&gt; Trait for &amp;T {}   | ^^^^^^^^^^^^^^^^^^^^ conflicting implementation for `&amp;_`  error[E0119]: conflicting implementations of trait `Trait` for type `&amp;mut _`:  --&gt; src\/lib.rs:7:1   | 3 | impl&lt;T&gt; Trait for T {}   | ------------------- first implementation here ... 7 | impl&lt;T&gt; Trait for &amp;mut T {}   | ^^^^^^^^^^^^^^^^^^^^^^^^ conflicting implementation for `&amp;mut _`<\/code><\/pre>\n<p>  <\/p>\n<p>\u041a\u043e\u043c\u043f\u0438\u043b\u044f\u0442\u043e\u0440 \u043d\u0435 \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u043d\u0430\u043c \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u044f\u0442\u044c \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044e <code>Trait<\/code> \u0434\u043b\u044f <code>&amp;T<\/code> \u0438 <code>&amp;mut T<\/code>, \u043f\u043e\u0442\u043e\u043c\u0443 \u0447\u0442\u043e \u043e\u043d\u0430 \u0431\u0443\u0434\u0435\u0442 \u043a\u043e\u043d\u0444\u043b\u0438\u043a\u0442\u043e\u0432\u0430\u0442\u044c \u0441 \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0435\u0439 <code>Trait<\/code> \u0434\u043b\u044f <code>T<\/code>, \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u0443\u0436\u0435 \u0432\u043a\u043b\u044e\u0447\u0430\u0435\u0442 \u0432 \u0441\u0435\u0431\u044f \u0432\u0441\u0435 <code>&amp;T<\/code> \u0438 <code>&amp;mut T<\/code>. \u041f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0430 \u043d\u0438\u0436\u0435 \u043a\u043e\u043c\u043f\u0438\u043b\u0438\u0440\u0443\u0435\u0442\u0441\u044f, \u043a\u0430\u043a \u0438 \u043e\u0436\u0438\u0434\u0430\u043b\u043e\u0441\u044c, \u0442\u0430\u043a \u043a\u0430\u043a <code>&amp;T<\/code> \u0438 <code>&amp;mut T<\/code> \u043d\u0435 \u043f\u0435\u0440\u0435\u0441\u0435\u043a\u0430\u044e\u0442\u0441\u044f:<\/p>\n<p>  <\/p>\n<pre><code class=\"rust\">trait Trait {}  impl&lt;T&gt; Trait for &amp;T {} \/\/ \u043a\u043e\u043c\u043f\u0438\u043b\u0438\u0440\u0443\u0435\u0442\u0441\u044f  impl&lt;T&gt; Trait for &amp;mut T {} \/\/ \u043a\u043e\u043c\u043f\u0438\u043b\u0438\u0440\u0443\u0435\u0442\u0441\u044f<\/code><\/pre>\n<p>  <\/p>\n<p><strong>\u041a\u043b\u044e\u0447\u0435\u0432\u044b\u0435 \u0432\u044b\u0432\u043e\u0434\u044b<\/strong><\/p>\n<p>  <\/p>\n<ul>\n<li><code>T<\/code> \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u043d\u0430\u0434\u043c\u043d\u043e\u0436\u0435\u0441\u0442\u0432\u043e\u043c \u043a\u0430\u043a <code>&amp;T<\/code>, \u0442\u0430\u043a \u0438 <code>&amp;mut T<\/code><\/li>\n<li><code>&amp;T<\/code> \u0438 <code>&amp;mut T<\/code> \u044f\u0432\u043b\u044f\u044e\u0442\u0441\u044f \u043d\u0435\u043f\u0435\u0440\u0435\u0441\u0435\u043a\u0430\u044e\u0449\u0438\u043c\u0438\u0441\u044f \u043c\u043d\u043e\u0436\u0435\u0441\u0442\u0432\u0430\u043c\u0438<\/li>\n<\/ul>\n<p>  <\/p>\n<h3 id=\"anchor2-if-t-static-then-t-must-be-valid-for-the-entire-programanchor-2-esli-t-static-to-t-dolzhno-zhit-na-protyazhenii-vsego-vremeni-raboty-programmy\"><a name=\"2-if-t-static-then-t-must-be-valid-for-the-entire-program\"><\/a> 2) \u0435\u0441\u043b\u0438 <code>T: 'static<\/code>, \u0442\u043e <code>T<\/code> \u0434\u043e\u043b\u0436\u043d\u043e \u0436\u0438\u0442\u044c \u043d\u0430 \u043f\u0440\u043e\u0442\u044f\u0436\u0435\u043d\u0438\u0438 \u0432\u0441\u0435\u0433\u043e \u0432\u0440\u0435\u043c\u0435\u043d\u0438 \u0440\u0430\u0431\u043e\u0442\u044b \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u044b<\/h3>\n<p>  <\/p>\n<p><strong>\u041e\u0448\u0438\u0431\u043e\u0447\u043d\u044b\u0435 \u0432\u044b\u0432\u043e\u0434\u044b<\/strong><\/p>\n<p>  <\/p>\n<ul>\n<li><code>T: 'static<\/code> \u0434\u043e\u043b\u0436\u043d\u043e \u0447\u0438\u0442\u0430\u0442\u044c\u0441\u044f \u043a\u0430\u043a <em>\u00ab<code>T<\/code> \u0438\u043c\u0435\u0435\u0442 \u0432\u0440\u0435\u043c\u044f \u0436\u0438\u0437\u043d\u0438 <code>'static<\/code>\u00bb<\/em><\/li>\n<li><code>&amp;'static T<\/code> \u0438 <code>T: 'static<\/code> \u2014 \u044d\u0442\u043e \u043e\u0434\u043d\u043e \u0438 \u0442\u043e \u0436\u0435<\/li>\n<li>\u0435\u0441\u043b\u0438 <code>T: 'static<\/code>, \u0442\u043e <code>T<\/code> \u0434\u043e\u043b\u0436\u0435\u043d \u0431\u044b\u0442\u044c \u043d\u0435\u0438\u0437\u043c\u0435\u043d\u044f\u0435\u043c\u044b\u043c<\/li>\n<li>\u0435\u0441\u043b\u0438 <code>T: 'static<\/code>, \u0442\u043e <code>T<\/code> \u043c\u043e\u0436\u0435\u0442 \u0431\u044b\u0442\u044c \u0441\u043e\u0437\u0434\u0430\u043d \u0442\u043e\u043b\u044c\u043a\u043e \u043d\u0430 \u044d\u0442\u0430\u043f\u0435 \u043a\u043e\u043c\u043f\u0438\u043b\u044f\u0446\u0438\u0438<\/li>\n<\/ul>\n<p>  <\/p>\n<p>\u0411\u043e\u043b\u044c\u0448\u0438\u043d\u0441\u0442\u0432\u043e \u043d\u043e\u0432\u0438\u0447\u043a\u043e\u0432 \u0432 Rust \u0432\u043f\u0435\u0440\u0432\u044b\u0435 \u0437\u043d\u0430\u043a\u043e\u043c\u044f\u0442\u0441\u044f \u0441\u043e \u0432\u0440\u0435\u043c\u0435\u043d\u0435\u043c \u0436\u0438\u0437\u043d\u0438 <code>'static<\/code>, \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044f \u043a\u043e\u0434, \u0432\u044b\u0433\u043b\u044f\u0434\u044f\u0449\u0438\u0439 \u043f\u0440\u0438\u043c\u0435\u0440\u043d\u043e \u0442\u0430\u043a:<\/p>\n<p>  <\/p>\n<pre><code class=\"rust\">fn main() {     let str_literal: &amp;'static str = &quot;str literal&quot;; }<\/code><\/pre>\n<p>  <\/p>\n<p>\u0418\u043c \u0433\u043e\u0432\u043e\u0440\u044f\u0442, \u0447\u0442\u043e <code>&quot;str literal&quot;<\/code> \u0445\u0440\u0430\u043d\u0438\u0442\u0441\u044f \u0432 \u0441\u0435\u0433\u043c\u0435\u043d\u0442\u0435 \u0434\u0430\u043d\u043d\u044b\u0445 \u0432 \u0441\u043a\u043e\u043c\u043f\u0438\u043b\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u043e\u043c \u0434\u0432\u043e\u0438\u0447\u043d\u043e\u043c \u0444\u0430\u0439\u043b\u0435 \u0438 \u0437\u0430\u0433\u0440\u0443\u0436\u0430\u0435\u0442\u0441\u044f \u0432 \u0434\u043e\u0441\u0442\u0443\u043f\u043d\u0443\u044e \u0442\u043e\u043b\u044c\u043a\u043e \u0434\u043b\u044f \u0447\u0442\u0435\u043d\u0438\u044f \u043f\u0430\u043c\u044f\u0442\u044c \u0432\u043e \u0432\u0440\u0435\u043c\u044f \u0438\u0441\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f, \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u043e\u043d \u043d\u0435\u0438\u0437\u043c\u0435\u043d\u044f\u0435\u043c \u0438 \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0442\u0435\u043b\u0435\u043d \u043d\u0430 \u043f\u0440\u043e\u0442\u044f\u0436\u0435\u043d\u0438\u0438 \u0432\u0441\u0435\u0433\u043e \u0432\u0440\u0435\u043c\u0435\u043d\u0438 \u0440\u0430\u0431\u043e\u0442\u044b \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u044b, \u0447\u0442\u043e \u0438 \u0434\u0435\u043b\u0430\u0435\u0442 \u0435\u0433\u043e <code>'static<\/code>. \u042d\u0442\u0438 \u043f\u043e\u043d\u044f\u0442\u0438\u044f \u0434\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u043f\u043e\u0434\u043a\u0440\u0435\u043f\u043b\u044f\u044e\u0442\u0441\u044f \u043f\u0440\u0430\u0432\u0438\u043b\u0430\u043c\u0438 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u0438\u044f <code>static<\/code> \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0445 \u0441 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435\u043c \u043a\u043b\u044e\u0447\u0435\u0432\u043e\u0433\u043e \u0441\u043b\u043e\u0432\u0430 <code>static<\/code> .<\/p>\n<p>  <\/p>\n<pre><code class=\"rust\">static BYTES: [u8; 3] = [1, 2, 3]; static mut MUT_BYTES: [u8; 3] = [1, 2, 3];  fn main() {    MUT_BYTES[0] = 99; \/\/ \u043e\u0448\u0438\u0431\u043a\u0430 \u043a\u043e\u043c\u043f\u0438\u043b\u044f\u0446\u0438\u0438, \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u0435 \u0441\u0442\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u043e\u0439 \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u043e\u0439 \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u043d\u0435\u0431\u0435\u0437\u043e\u043f\u0430\u0441\u043d\u043e\u0439 \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u0435\u0439      unsafe {         MUT_BYTES[0] = 99;         assert_eq!(99, MUT_BYTES[0]);     } }<\/code><\/pre>\n<p>  <\/p>\n<p>\u0427\u0442\u043e \u0441\u043f\u0440\u0430\u0432\u0435\u0434\u043b\u0438\u0432\u043e \u043f\u043e \u043e\u0442\u043d\u043e\u0448\u0435\u043d\u0438\u044e \u043a <code>static<\/code> \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u043c:<\/p>\n<p>  <\/p>\n<ul>\n<li>\u043e\u043d\u0438 \u043c\u043e\u0433\u0443\u0442 \u0431\u044b\u0442\u044c \u0441\u043e\u0437\u0434\u0430\u043d\u044b \u0442\u043e\u043b\u044c\u043a\u043e \u0432\u043e \u0432\u0440\u0435\u043c\u044f \u043a\u043e\u043c\u043f\u0438\u043b\u044f\u0446\u0438\u0438<\/li>\n<li>\u043e\u043d\u0438 \u0434\u043e\u043b\u0436\u043d\u044b \u0431\u044b\u0442\u044c \u043d\u0435\u0438\u0437\u043c\u0435\u043d\u044f\u0435\u043c\u044b\u043c\u0438, \u043c\u043e\u0434\u0438\u0444\u0438\u0446\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0438\u0445 \u043d\u0435\u0431\u0435\u0437\u043e\u043f\u0430\u0441\u043d\u043e<\/li>\n<li>\u043e\u043d\u0438 \u0434\u043e\u0441\u0442\u0443\u043f\u043d\u044b \u043d\u0430 \u043f\u0440\u043e\u0442\u044f\u0436\u0435\u043d\u0438\u0438 \u0432\u0441\u0435\u0433\u043e \u0432\u0440\u0435\u043c\u0435\u043d\u0438 \u0440\u0430\u0431\u043e\u0442\u044b \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u044b<\/li>\n<\/ul>\n<p>  <\/p>\n<p><code>'static<\/code> \u0432\u0440\u0435\u043c\u044f \u0436\u0438\u0437\u043d\u0438, \u0432\u0435\u0440\u043e\u044f\u0442\u043d\u043e, \u0431\u044b\u043b\u043e \u043d\u0430\u0437\u0432\u0430\u043d\u043e \u0442\u0430\u043a \u0438\u0437-\u0437\u0430 \u0432\u0440\u0435\u043c\u0451\u043d \u0436\u0438\u0437\u043d\u0438 \u043f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e <code>static<\/code> \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0445, \u0432\u0435\u0434\u044c \u0442\u0430\u043a? \u0422\u0430\u043a \u0447\u0442\u043e \u043b\u043e\u0433\u0438\u0447\u043d\u043e, \u0447\u0442\u043e \u0432\u0440\u0435\u043c\u044f \u0436\u0438\u0437\u043d\u0438 <code>'static<\/code> \u0434\u043e\u043b\u0436\u043d\u043e \u0441\u043b\u0435\u0434\u043e\u0432\u0430\u0442\u044c \u0442\u0435\u043c \u0436\u0435 \u043f\u0440\u0430\u0432\u0438\u043b\u0430\u043c, \u043d\u0435 \u0442\u0430\u043a \u043b\u0438?<\/p>\n<p>  <\/p>\n<p>\u041d\u0443, \u0434\u0430, \u043d\u043e \u0442\u0438\u043f, <em>\u0441\u043e\u0434\u0435\u0440\u0436\u0430\u0449\u0438\u0439<\/em> \u0432\u0440\u0435\u043c\u044f \u0436\u0438\u0437\u043d\u0438 <code>'static<\/code>, \u043e\u0442\u043b\u0438\u0447\u0430\u0435\u0442\u0441\u044f \u043e\u0442 \u0442\u0438\u043f\u0430, <em>\u043e\u0433\u0440\u0430\u043d\u0438\u0447\u0435\u043d\u043d\u043e\u0433\u043e<\/em> \u0432\u0440\u0435\u043c\u0435\u043d\u0435\u043c \u0436\u0438\u0437\u043d\u0438 <code>'static<\/code>. \u041f\u043e\u0441\u043b\u0435\u0434\u043d\u0438\u0439 \u043c\u043e\u0436\u0435\u0442 \u0431\u044b\u0442\u044c \u0434\u0438\u043d\u0430\u043c\u0438\u0447\u0435\u0441\u043a\u0438 \u0441\u043e\u0437\u0434\u0430\u043d \u0432\u043e \u0432\u0440\u0435\u043c\u044f \u0438\u0441\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f, \u0431\u0435\u0437\u043e\u043f\u0430\u0441\u043d\u043e \u0438 \u0431\u0435\u0441\u043f\u0440\u0435\u043f\u044f\u0442\u0441\u0442\u0432\u0435\u043d\u043d\u043e \u0438\u0437\u043c\u0435\u043d\u0451\u043d \u0438 \u0443\u0434\u0430\u043b\u0451\u043d, \u0430 \u0442\u0430\u043a\u0436\u0435 \u043c\u043e\u0436\u0435\u0442 \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u043e\u0432\u0430\u0442\u044c \u0432 \u0442\u0435\u0447\u0435\u043d\u0438\u0435 \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u043b\u044c\u043d\u044b\u0445 \u043f\u0440\u043e\u043c\u0435\u0436\u0443\u0442\u043a\u043e\u0432 \u0432\u0440\u0435\u043c\u0435\u043d\u0438.<\/p>\n<p>  <\/p>\n<p>\u0412\u0430\u0436\u043d\u043e \u0440\u0430\u0437\u043b\u0438\u0447\u0430\u0442\u044c <code>&amp;'static T<\/code> \u0438 <code>T: 'static<\/code>.<\/p>\n<p>  <\/p>\n<p><code>&amp;'static T<\/code> \u2014 \u044d\u0442\u043e \u043d\u0435\u0438\u0437\u043c\u0435\u043d\u044f\u0435\u043c\u0430\u044f \u0441\u0441\u044b\u043b\u043a\u0430 \u043d\u0430 \u043d\u0435\u043a\u043e\u0442\u043e\u0440\u044b\u0439 <code>T<\/code>, \u043a\u043e\u0442\u043e\u0440\u0443\u044e \u043c\u043e\u0436\u043d\u043e \u0445\u0440\u0430\u043d\u0438\u0442\u044c \u0431\u0435\u0437\u043e\u043f\u0430\u0441\u043d\u043e \u043d\u0435\u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u043d\u043e \u0434\u043e\u043b\u0433\u043e\u0435 \u0432\u0440\u0435\u043c\u044f, \u0432 \u0442\u043e\u043c \u0447\u0438\u0441\u043b\u0435 \u0432\u043f\u043b\u043e\u0442\u044c \u0434\u043e \u043a\u043e\u043d\u0446\u0430 \u0440\u0430\u0431\u043e\u0442\u044b \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u044b. \u042d\u0442\u043e \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e \u0442\u043e\u043b\u044c\u043a\u043e \u0432 \u0442\u043e\u043c \u0441\u043b\u0443\u0447\u0430\u0435, \u0435\u0441\u043b\u0438 \u0441\u0430\u043c <code>T<\/code> \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u043d\u0435\u0438\u0437\u043c\u0435\u043d\u044f\u0435\u043c\u044b\u043c \u0438 \u043d\u0435 \u043f\u0435\u0440\u0435\u043c\u0435\u0449\u0430\u0435\u0442\u0441\u044f <em>\u043f\u043e\u0441\u043b\u0435 \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u044f \u0441\u0441\u044b\u043b\u043a\u0438<\/em>. <code>T<\/code> \u043d\u0435 \u043e\u0431\u044f\u0437\u0430\u0442\u0435\u043b\u044c\u043d\u043e \u0434\u043e\u043b\u0436\u0435\u043d \u0431\u044b\u0442\u044c \u0441\u043e\u0437\u0434\u0430\u043d \u043d\u0430 \u044d\u0442\u0430\u043f\u0435 \u043a\u043e\u043c\u043f\u0438\u043b\u044f\u0446\u0438\u0438. \u0412\u043f\u043e\u043b\u043d\u0435 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e \u0433\u0435\u043d\u0435\u0440\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u043b\u044c\u043d\u044b\u0435 \u0434\u0438\u043d\u0430\u043c\u0438\u0447\u0435\u0441\u043a\u0438 \u0432\u044b\u0434\u0435\u043b\u044f\u0435\u043c\u044b\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u0432\u043e \u0432\u0440\u0435\u043c\u044f \u0438\u0441\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f \u0438 \u0432\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0442\u044c <code>'static<\/code> \u0441\u0441\u044b\u043b\u043a\u0438 \u043d\u0430 \u043d\u0438\u0445 \u0446\u0435\u043d\u043e\u0439 \u0443\u0442\u0435\u0447\u043a\u0438 \u043f\u0430\u043c\u044f\u0442\u0438, \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440:<\/p>\n<p>  <\/p>\n<pre><code class=\"rust\">use rand;  \/\/ \u0433\u0435\u043d\u0435\u0440\u0438\u0440\u0443\u0435\u0442 \u0432\u043e \u0432\u0440\u0435\u043c\u044f \u0438\u0441\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f \u0441\u043b\u0443\u0447\u0430\u0439\u043d\u044b\u0435 'static str \u0441\u0441\u044b\u043b\u043a\u0438 fn rand_str_generator() -&gt; &amp;'static str {     let rand_string = rand::random::&lt;u64&gt;().to_string();     Box::leak(rand_string.into_boxed_str()) }<\/code><\/pre>\n<p>  <\/p>\n<p><code>T: 'static<\/code> \u2014 \u044d\u0442\u043e \u043d\u0435\u043a\u0438\u0439 <code>T<\/code>, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043c\u043e\u0436\u043d\u043e \u0445\u0440\u0430\u043d\u0438\u0442\u044c \u0431\u0435\u0437\u043e\u043f\u0430\u0441\u043d\u043e \u0431\u0435\u0441\u043a\u043e\u043d\u0435\u0447\u043d\u043e \u0434\u043e\u043b\u0433\u043e, \u0432 \u0442\u043e\u043c \u0447\u0438\u0441\u043b\u0435 \u0432\u043f\u043b\u043e\u0442\u044c \u0434\u043e \u043a\u043e\u043d\u0446\u0430 \u0440\u0430\u0431\u043e\u0442\u044b \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u044b. <code>T: 'static<\/code> \u0432\u043a\u043b\u044e\u0447\u0430\u0435\u0442 \u0432 \u0441\u0435\u0431\u044f \u0432\u0441\u0435 <code>&amp;'static T<\/code>, \u043e\u0434\u043d\u0430\u043a\u043e \u043e\u043d\u043e \u0442\u0430\u043a\u0436\u0435 \u0432\u043a\u043b\u044e\u0447\u0430\u0435\u0442 \u0432 \u0441\u0435\u0431\u044f \u0432\u0441\u0435 \u0432\u043b\u0430\u0434\u0435\u044e\u0449\u0438\u0435 \u0442\u0438\u043f\u044b, \u0442\u0430\u043a\u0438\u0435 \u043a\u0430\u043a <code>String<\/code>, <code>Vec<\/code> \u0438 \u0442. \u0434. \u0412\u043b\u0430\u0434\u0435\u043b\u0435\u0446 \u043d\u0435\u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u0434\u0430\u043d\u043d\u044b\u0445 \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u0433\u0430\u0440\u0430\u043d\u0442\u043e\u043c \u0442\u043e\u0433\u043e, \u0447\u0442\u043e \u0434\u0430\u043d\u043d\u044b\u0435 \u043d\u0438\u043a\u043e\u0433\u0434\u0430 \u043d\u0435 \u0431\u0443\u0434\u0443\u0442 \u0438\u043d\u0432\u0430\u043b\u0438\u0434\u0438\u0440\u043e\u0432\u0430\u043d\u044b, \u043f\u043e\u043a\u0430 \u0432\u043b\u0430\u0434\u0435\u043b\u0435\u0446 \u0438\u0445 \u0443\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u0435\u0442, \u0441\u043b\u0435\u0434\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u043d\u043e, \u0432\u043b\u0430\u0434\u0435\u043b\u0435\u0446 \u043c\u043e\u0436\u0435\u0442 \u0431\u0435\u0437\u043e\u043f\u0430\u0441\u043d\u043e \u0445\u0440\u0430\u043d\u0438\u0442\u044c \u0434\u0430\u043d\u043d\u044b\u0435 \u0441\u043a\u043e\u043b\u044c \u0443\u0433\u043e\u0434\u043d\u043e \u0434\u043e\u043b\u0433\u043e, \u0432 \u0442\u043e\u043c \u0447\u0438\u0441\u043b\u0435 \u0432\u043f\u043b\u043e\u0442\u044c \u0434\u043e \u043a\u043e\u043d\u0446\u0430 \u0440\u0430\u0431\u043e\u0442\u044b \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u044b. <code>T: 'static<\/code> \u0434\u043e\u043b\u0436\u043d\u043e \u0447\u0438\u0442\u0430\u0442\u044c\u0441\u044f, \u043a\u0430\u043a <em>\u00ab<code>T<\/code> \u043e\u0433\u0440\u0430\u043d\u0438\u0447\u0435\u043d \u0432\u0440\u0435\u043c\u0435\u043d\u0435\u043c \u0436\u0438\u0437\u043d\u0438 <code>'static<\/code>\u00bb<\/em>, \u0430 \u043d\u0435<em>&nbsp;\u00ab<code>T<\/code> \u0438\u043c\u0435\u0435\u0442 \u0432\u0440\u0435\u043c\u044f \u0436\u0438\u0437\u043d\u0438 <code>'static<\/code>\u00bb<\/em>. \u0412\u043e\u0442 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0430 \u0434\u043b\u044f \u0438\u043b\u043b\u044e\u0441\u0442\u0440\u0430\u0446\u0438\u0438 \u044d\u0442\u0438\u0445 \u043a\u043e\u043d\u0446\u0435\u043f\u0446\u0438\u0439:<\/p>\n<p>  <\/p>\n<pre><code class=\"rust\">use rand;  fn drop_static&lt;T: 'static&gt;(t: T) {     std::mem::drop(t); }  fn main() {     let mut strings: Vec&lt;String&gt; = Vec::new();     for _ in 0..10 {         if rand::random() {             \/\/ \u0432\u0441\u0435 \u0441\u0442\u0440\u043e\u043a\u0438 \u0441\u0433\u0435\u043d\u0435\u0440\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b \u0441\u043b\u0443\u0447\u0430\u0439\u043d\u044b\u043c \u043e\u0431\u0440\u0430\u0437\u043e\u043c             \/\/ \u0438 \u0434\u0438\u043d\u0430\u043c\u0438\u0447\u0435\u0441\u043a\u0438 \u0441\u043e\u0437\u0434\u0430\u043d\u044b \u0432 \u043a\u0443\u0447\u0435 \u0432\u043e \u0432\u0440\u0435\u043c\u044f \u0438\u0441\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f             let string = rand::random::&lt;u64&gt;().to_string();             strings.push(string);         }     }      \/\/ \u0441\u0442\u0440\u043e\u043a\u0438 \u044f\u0432\u043b\u044f\u044e\u0442\u0441\u044f \u0432\u043b\u0430\u0434\u0435\u044e\u0449\u0438\u043c\u0438 \u0442\u0438\u043f\u0430\u043c\u0438,     \/\/ \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u043e\u043d\u0438 \u0443\u0434\u043e\u0432\u043b\u0435\u0442\u0432\u043e\u0440\u044f\u044e\u0442 \u043e\u0433\u0440\u0430\u043d\u0438\u0447\u0435\u043d\u0438\u044e 'static     for mut string in strings {         \/\/ \u0432\u0441\u0435 \u0441\u0442\u0440\u043e\u043a\u0438 \u0438\u0437\u043c\u0435\u043d\u044f\u0435\u043c\u044b         string.push_str(&quot;a mutation&quot;);         \/\/ \u0432\u0441\u0435 \u0441\u0442\u0440\u043e\u043a\u0438 \u0434\u0438\u043d\u0430\u043c\u0438\u0447\u0435\u0441\u043a\u0438 \u0443\u043d\u0438\u0447\u0442\u043e\u0436\u0430\u0435\u043c\u044b         drop_static(string); \/\/ \u043a\u043e\u043c\u043f\u0438\u043b\u0438\u0440\u0443\u0435\u0442\u0441\u044f     }      \/\/ \u0432\u0441\u0435 \u0441\u0442\u0440\u043e\u043a\u0438 \u0431\u044b\u043b\u0438 \u0438\u043d\u0432\u0430\u043b\u0438\u0434\u0438\u0440\u043e\u0432\u0430\u043d\u044b \u0434\u043e \u043e\u043a\u043e\u043d\u0447\u0430\u043d\u0438\u044f \u0440\u0430\u0431\u043e\u0442\u044b \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u044b     println!(&quot;i am the end of the program&quot;); }<\/code><\/pre>\n<p>  <\/p>\n<p><strong>\u041a\u043b\u044e\u0447\u0435\u0432\u044b\u0435 \u0432\u044b\u0432\u043e\u0434\u044b<\/strong><\/p>\n<p>  <\/p>\n<ul>\n<li><code>T: 'static<\/code> \u0434\u043e\u043b\u0436\u043d\u043e \u0447\u0438\u0442\u0430\u0442\u044c\u0441\u044f, \u043a\u0430\u043a <em>\u00ab<code>T<\/code> \u043e\u0433\u0440\u0430\u043d\u0438\u0447\u0435\u043d \u0432\u0440\u0435\u043c\u0435\u043d\u0435\u043c \u0436\u0438\u0437\u043d\u0438 <code>'static<\/code>\u00bb<\/em><\/li>\n<li>\u0435\u0441\u043b\u0438 <code>T: 'static<\/code>, \u0442\u043e <code>T<\/code> \u043c\u043e\u0436\u0435\u0442 \u0431\u044b\u0442\u044c \u0437\u0430\u0438\u043c\u0441\u0442\u0432\u043e\u0432\u0430\u043d\u043d\u044b\u043c \u0442\u0438\u043f\u043e\u043c \u0441 \u0432\u0440\u0435\u043c\u0435\u043d\u0435\u043c \u0436\u0438\u0437\u043d\u0438 <code>'static<\/code> <em>\u0438\u043b\u0438<\/em> \u0432\u043b\u0430\u0434\u0435\u044e\u0449\u0438\u043c \u0442\u0438\u043f\u043e\u043c.<\/li>\n<li>\u043f\u043e\u0441\u043a\u043e\u043b\u044c\u043a\u0443 <code>T: 'static<\/code> \u0432\u043a\u043b\u044e\u0447\u0430\u0435\u0442 \u0432 \u0441\u0435\u0431\u044f \u0432\u043b\u0430\u0434\u0435\u044e\u0449\u0438\u0435 \u0442\u0438\u043f\u044b, \u044d\u0442\u043e \u043e\u0437\u043d\u0430\u0447\u0430\u0435\u0442, \u0447\u0442\u043e <code>T<\/code><br \/> \n<ul>\n<li>\u043c\u043e\u0436\u0435\u0442 \u0431\u044b\u0442\u044c \u0434\u0438\u043d\u0430\u043c\u0438\u0447\u0435\u0441\u043a\u0438 \u0441\u043e\u0437\u0434\u0430\u043d \u0432 \u0440\u0430\u043d\u0442\u0430\u0439\u043c\u0435<\/li>\n<li>\u043d\u0435 \u043e\u0431\u044f\u0437\u0430\u043d \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u043e\u0432\u0430\u0442\u044c \u043d\u0430 \u043f\u0440\u043e\u0442\u044f\u0436\u0435\u043d\u0438\u0438 \u0432\u0441\u0435\u0433\u043e \u0432\u0440\u0435\u043c\u0435\u043d\u0438 \u0440\u0430\u0431\u043e\u0442\u044b \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u044b<\/li>\n<li>\u043c\u043e\u0436\u0435\u0442 \u0431\u044b\u0442\u044c \u0431\u0435\u0437\u043e\u043f\u0430\u0441\u043d\u043e \u0438 \u0431\u0435\u0441\u043f\u0440\u0435\u043f\u044f\u0442\u0441\u0442\u0432\u0435\u043d\u043d\u043e \u0438\u0437\u043c\u0435\u043d\u0451\u043d<\/li>\n<li>\u043c\u043e\u0436\u0435\u0442 \u0431\u044b\u0442\u044c \u0434\u0438\u043d\u0430\u043c\u0438\u0447\u0435\u0441\u043a\u0438 \u0443\u043d\u0438\u0447\u0442\u043e\u0436\u0435\u043d \u0432\u043e \u0432\u0440\u0435\u043c\u044f \u0438\u0441\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f<\/li>\n<li>\u043c\u043e\u0436\u0435\u0442 \u0438\u043c\u0435\u0442\u044c \u0432\u0440\u0435\u043c\u044f \u0436\u0438\u0437\u043d\u0438 \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u043b\u044c\u043d\u043e\u0439 \u043f\u0440\u043e\u0434\u043e\u043b\u0436\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u0438<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<p>  <\/p>\n<h3 id=\"anchor3-a-t-and-t-a-are-the-same-thinanchor-3-a-t-i-t-a--odno-i-to-zhe\"><a name=\"3-a-t-and-t-a-are-the-same-thin\"><\/a> 3) <code>&amp;'a T<\/code> \u0438 <code>T: 'a<\/code> \u2014 \u043e\u0434\u043d\u043e \u0438 \u0442\u043e \u0436\u0435<\/h3>\n<p>  <\/p>\n<p>\u042d\u0442\u043e \u0437\u0430\u0431\u043b\u0443\u0436\u0434\u0435\u043d\u0438\u0435 \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u043e\u0431\u043e\u0431\u0449\u0435\u043d\u0438\u0435\u043c \u0437\u0430\u0431\u043b\u0443\u0436\u0434\u0435\u043d\u0438\u044f \u0432\u044b\u0448\u0435.<\/p>\n<p>  <\/p>\n<p><code>&amp;'a T<\/code> \u0442\u0440\u0435\u0431\u0443\u0435\u0442 \u0438 \u043f\u043e\u0434\u0440\u0430\u0437\u0443\u043c\u0435\u0432\u0430\u0435\u0442 <code>T: 'a<\/code>, \u043f\u043e\u0441\u043a\u043e\u043b\u044c\u043a\u0443 \u0441\u0441\u044b\u043b\u043a\u0430 \u043d\u0430 <code>T<\/code>, \u0438\u043c\u0435\u044e\u0449\u0430\u044f \u0432\u0440\u0435\u043c\u044f \u0436\u0438\u0437\u043d\u0438 <code>'a<\/code>, \u043d\u0435 \u043c\u043e\u0436\u0435\u0442 \u0431\u044b\u0442\u044c \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0439 \u0434\u043b\u044f <code>'a<\/code>, \u0435\u0441\u043b\u0438 \u0441\u0430\u043c <code>T<\/code> \u043d\u0435\u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0442\u0435\u043b\u0435\u043d \u0434\u043b\u044f <code>'a<\/code>. \u041d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u043a\u043e\u043c\u043f\u0438\u043b\u044f\u0442\u043e\u0440 Rust \u043d\u0438\u043a\u043e\u0433\u0434\u0430 \u043d\u0435 \u0440\u0430\u0437\u0440\u0435\u0448\u0438\u0442 \u043a\u043e\u043d\u0441\u0442\u0440\u0443\u043a\u0446\u0438\u044e \u0442\u0438\u043f\u0430 <code>&amp;'static Ref&lt;'a, T&gt;<\/code> \u043f\u043e\u0442\u043e\u043c\u0443 \u0447\u0442\u043e \u0435\u0441\u043b\u0438 <code>Ref<\/code> \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0442\u0435\u043b\u0435\u043d \u0442\u043e\u043b\u044c\u043a\u043e \u0434\u043b\u044f <code>'a<\/code>, \u0442\u043e \u043c\u044b \u043d\u0435 \u043c\u043e\u0436\u0435\u043c \u0441\u0434\u0435\u043b\u0430\u0442\u044c <code>'static<\/code> \u0441\u0441\u044b\u043b\u043a\u0443 \u043d\u0430 \u043d\u0435\u0433\u043e.<\/p>\n<p>  <\/p>\n<p><code>T: 'a<\/code> \u0432\u043a\u043b\u044e\u0447\u0430\u0435\u0442 \u0432 \u0441\u0435\u0431\u044f \u0432\u0441\u0435 <code>&amp;'a T<\/code>, \u043d\u043e \u043e\u0431\u0440\u0430\u0442\u043d\u043e\u0435 \u043d\u0435\u0432\u0435\u0440\u043d\u043e.<\/p>\n<p>  <\/p>\n<pre><code class=\"rust\">\/\/ \u043f\u0440\u0438\u043d\u0438\u043c\u0430\u0435\u0442 \u0442\u043e\u043b\u044c\u043a\u043e \u0441\u0441\u044b\u043b\u043a\u0438, \u043e\u0433\u0440\u0430\u043d\u0438\u0447\u0435\u043d\u043d\u044b\u0435 'a fn t_ref&lt;'a, T: 'a&gt;(t: &amp;'a T) {}  \/\/ \u043f\u0440\u0438\u043d\u0438\u043c\u0430\u0435\u0442 \u043b\u044e\u0431\u044b\u0435 \u0442\u0438\u043f\u044b, \u043e\u0433\u0440\u0430\u043d\u0438\u0447\u0435\u043d\u043d\u044b\u0435 'a fn t_bound&lt;'a, T: 'a&gt;(t: T) {}  \/\/ \u0432\u043b\u0430\u0434\u0435\u044e\u0449\u0438\u0439 \u0442\u0438\u043f, \u0441\u043e\u0434\u0435\u0440\u0436\u0430\u0449\u0438\u0439 \u0441\u0441\u044b\u043b\u043a\u0443 struct Ref&lt;'a, T: 'a&gt;(&amp;'a T);  fn main() {     let string = String::from(&quot;string&quot;);      t_bound(&amp;string); \/\/ \u043a\u043e\u043c\u043f\u0438\u043b\u0438\u0440\u0443\u0435\u0442\u0441\u044f     t_bound(Ref(&amp;string)); \/\/ \u043a\u043e\u043c\u043f\u0438\u043b\u0438\u0440\u0443\u0435\u0442\u0441\u044f     t_bound(&amp;Ref(&amp;string)); \/\/ \u043a\u043e\u043c\u043f\u0438\u043b\u0438\u0440\u0443\u0435\u0442\u0441\u044f      t_ref(&amp;string); \/\/ \u043a\u043e\u043c\u043f\u0438\u043b\u0438\u0440\u0443\u0435\u0442\u0441\u044f     t_ref(Ref(&amp;string)); \/\/ \u043e\u0448\u0438\u0431\u043a\u0430 \u043a\u043e\u043c\u043f\u0438\u043b\u044f\u0446\u0438\u0438, \u043e\u0436\u0438\u0434\u0430\u043b\u0430\u0441\u044c \u0441\u0441\u044b\u043b\u043a\u0430, \u043e\u0431\u043d\u0430\u0440\u0443\u0436\u0435\u043d\u0430 \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0430     t_ref(&amp;Ref(&amp;string)); \/\/ \u043a\u043e\u043c\u043f\u0438\u043b\u0438\u0440\u0443\u0435\u0442\u0441\u044f      \/\/ \u0441\u0442\u0440\u043e\u043a\u043e\u0432\u0430\u044f \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u0430\u044f \u043e\u0433\u0440\u0430\u043d\u0438\u0447\u0435\u043d\u0430 'static, \u043a\u043e\u0442\u043e\u0440\u043e\u0435, \u0432 \u0441\u0432\u043e\u044e \u043e\u0447\u0435\u0440\u0435\u0434\u044c, \u043e\u0433\u0440\u0430\u043d\u0438\u0447\u0435\u043d\u043e 'a     t_bound(string); \/\/ \u043a\u043e\u043c\u043f\u0438\u043b\u0438\u0440\u0443\u0435\u0442\u0441\u044f }<\/code><\/pre>\n<p>  <\/p>\n<p><strong>\u041a\u043b\u044e\u0447\u0435\u0432\u044b\u0435 \u0432\u044b\u0432\u043e\u0434\u044b<\/strong><\/p>\n<p>  <\/p>\n<ul>\n<li><code>T: 'a<\/code> \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u0431\u043e\u043b\u0435\u0435 \u043e\u0431\u0449\u0438\u043c \u0438 \u0431\u043e\u043b\u0435\u0435 \u0433\u0438\u0431\u043a\u0438\u043c \u0442\u0438\u043f\u043e\u043c, \u0447\u0435\u043c <code>&amp;'a T<\/code><\/li>\n<li><code>T: 'a<\/code> \u043f\u0440\u0438\u043d\u0438\u043c\u0430\u0435\u0442 \u0432\u043b\u0430\u0434\u0435\u044e\u0449\u0438\u0435 \u0442\u0438\u043f\u044b, \u0432\u043b\u0430\u0434\u0435\u044e\u0449\u0438\u0435 \u0442\u0438\u043f\u044b, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0441\u043e\u0434\u0435\u0440\u0436\u0430\u0442 \u0441\u0441\u044b\u043b\u043a\u0438, \u0438 \u0441\u0441\u044b\u043b\u043a\u0438<\/li>\n<li><code>&amp;'a T<\/code> \u043f\u0440\u0438\u043d\u0438\u043c\u0430\u0435\u0442 \u0442\u043e\u043b\u044c\u043a\u043e \u0441\u0441\u044b\u043b\u043a\u0438<\/li>\n<li>\u0435\u0441\u043b\u0438 <code>T: 'static<\/code>, \u0442\u043e <code>T: 'a<\/code>, \u0442\u0430\u043a \u043a\u0430\u043a <code>'static<\/code> &gt;= <code>'a<\/code> \u0434\u043b\u044f \u0432\u0441\u0435\u0445 <code>'a<\/code><\/li>\n<\/ul>\n<p>  <\/p>\n<h3 id=\"anchor4-my-code-isnt-generic-and-doesnt-have-lifetimesanchor-4-moy-kod-ne-yavlyaetsya-obobschyonnym-i-ne-imeet-vremyon-zhizni\"><a name=\"4-my-code-isnt-generic-and-doesnt-have-lifetimes\"><\/a> 4) \u043c\u043e\u0439 \u043a\u043e\u0434 \u043d\u0435 \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u043e\u0431\u043e\u0431\u0449\u0451\u043d\u043d\u044b\u043c \u0438 \u043d\u0435 \u0438\u043c\u0435\u0435\u0442 \u0432\u0440\u0435\u043c\u0451\u043d \u0436\u0438\u0437\u043d\u0438<\/h3>\n<p>  <\/p>\n<p><strong>\u041e\u0448\u0438\u0431\u043e\u0447\u043d\u044b\u0435 \u0432\u044b\u0432\u043e\u0434\u044b<\/strong><\/p>\n<p>  <\/p>\n<ul>\n<li>\u043c\u043e\u0436\u043d\u043e \u0438\u0437\u0431\u0435\u0436\u0430\u0442\u044c \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u044f \u043e\u0431\u043e\u0431\u0449\u0451\u043d\u043d\u044b\u0445 \u0442\u0438\u043f\u043e\u0432 \u0438 \u0432\u0440\u0435\u043c\u0451\u043d \u0436\u0438\u0437\u043d\u0438<\/li>\n<\/ul>\n<p>  <\/p>\n<p>\u042d\u0442\u043e \u0443\u0434\u043e\u0431\u043d\u043e\u0435 \u0437\u0430\u0431\u043b\u0443\u0436\u0434\u0435\u043d\u0438\u0435 \u0441\u043e\u0445\u0440\u0430\u043d\u044f\u0435\u0442\u0441\u044f \u0438\u0437-\u0437\u0430 \u043f\u0440\u0430\u0432\u0438\u043b \u0432\u044b\u0432\u043e\u0434\u0430 \u0432\u0440\u0435\u043c\u0451\u043d \u0436\u0438\u0437\u043d\u0438 (lifetime elision), \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u044e\u0449\u0438\u0445 \u043e\u043f\u0443\u0441\u0442\u0438\u0442\u044c \u0430\u043d\u043d\u043e\u0442\u0430\u0446\u0438\u0438 \u0432\u0440\u0435\u043c\u0451\u043d \u0436\u0438\u0437\u043d\u0438 \u0432 \u0444\u0443\u043d\u043a\u0446\u0438\u044f\u0445, \u043f\u043e\u0441\u043a\u043e\u043b\u044c\u043a\u0443 \u043a\u043e\u043c\u043f\u0438\u043b\u044f\u0442\u043e\u0440 Rust \u0432\u044b\u0432\u0435\u0434\u0435\u0442 \u0438\u0445 \u0441\u043e\u0433\u043b\u0430\u0441\u043d\u043e \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u043c \u043f\u0440\u0430\u0432\u0438\u043b\u0430\u043c:<\/p>\n<p>  <\/p>\n<ul>\n<li>\u043a\u0430\u0436\u0434\u0430\u044f \u0441\u0441\u044b\u043b\u043a\u0430-\u0430\u0440\u0433\u0443\u043c\u0435\u043d\u0442 \u0444\u0443\u043d\u043a\u0446\u0438\u0438 \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<\/li>\n<li>\u0435\u0441\u043b\u0438 \u0435\u0441\u0442\u044c \u0440\u043e\u0432\u043d\u043e \u043e\u0434\u043d\u043e \u0432\u0445\u043e\u0434\u043d\u043e\u0435 \u0432\u0440\u0435\u043c\u044f \u0436\u0438\u0437\u043d\u0438, \u0442\u043e \u043e\u043d\u043e \u043f\u0440\u0438\u043f\u0438\u0441\u044b\u0432\u0430\u0435\u0442\u0441\u044f \u0432\u0441\u0435\u043c \u0432\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u043c\u044b\u043c \u0441\u0441\u044b\u043b\u043a\u0430\u043c (\u043f\u0440\u0438\u043c. \u043f\u0435\u0440\u0435\u0432\u043e\u0434\u0447\u0438\u043a\u0430: \u043d\u0435 \u0442\u043e\u043b\u044c\u043a\u043e \u0441\u0441\u044b\u043b\u043a\u0430\u043c, \u043d\u043e \u0438 \u0432\u043e\u043e\u0431\u0449\u0435 \u0432\u0441\u0435\u043c \u043e\u0431\u043e\u0431\u0449\u0451\u043d\u043d\u044b\u043c \u0442\u0438\u043f\u0430\u043c, \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u0438\u0437\u043e\u0432\u0430\u043d\u043d\u044b\u043c \u0432\u0440\u0435\u043c\u0435\u043d\u0435\u043c \u0436\u0438\u0437\u043d\u0438)<\/li>\n<li>\u0435\u0441\u043b\u0438 \u0435\u0441\u0442\u044c \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u0432\u0445\u043e\u0434\u043d\u044b\u0445 \u0432\u0440\u0435\u043c\u0451\u043d \u0436\u0438\u0437\u043d\u0438, \u043d\u043e \u043e\u0434\u043d\u043e \u0438\u0437 \u043d\u0438\u0445 \u2014 \u044d\u0442\u043e \u0432\u0440\u0435\u043c\u044f \u0436\u0438\u0437\u043d\u0438 <code>&amp;self<\/code> \u0438\u043b\u0438 <code>&amp;mut self<\/code>, \u0442\u043e \u0432\u0440\u0435\u043c\u044f \u0436\u0438\u0437\u043d\u0438 <code>self<\/code> \u043f\u0440\u0438\u043f\u0438\u0441\u044b\u0432\u0430\u0435\u0442\u0441\u044f \u0432\u0441\u0435\u043c \u0432\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u043c\u044b\u043c \u0441\u0441\u044b\u043b\u043a\u0430\u043c<\/li>\n<li>\u0432 \u043f\u0440\u043e\u0442\u0438\u0432\u043d\u043e\u043c \u0441\u043b\u0443\u0447\u0430\u0435 \u0432\u0440\u0435\u043c\u0435\u043d\u0430 \u0436\u0438\u0437\u043d\u0438 \u0432\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u043c\u044b\u0445 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0439 \u0434\u043e\u043b\u0436\u043d\u044b \u0431\u044b\u0442\u044c \u0443\u043a\u0430\u0437\u0430\u043d\u044b \u044f\u0432\u043d\u043e<\/li>\n<\/ul>\n<p>  <\/p>\n<p>\u042d\u0442\u043e \u0434\u043e\u0432\u043e\u043b\u044c\u043d\u043e \u043c\u043d\u043e\u0433\u043e, \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u0434\u0430\u0432\u0430\u0439\u0442\u0435 \u0440\u0430\u0441\u0441\u043c\u043e\u0442\u0440\u0438\u043c \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u043f\u0440\u0438\u043c\u0435\u0440\u043e\u0432:<\/p>\n<p>  <\/p>\n<pre><code class=\"rust\">\/\/ \u043d\u0435\u044f\u0432\u043d\u043e fn print(s: &amp;str);  \/\/ \u0432\u044b\u0432\u0435\u0434\u0435\u043d\u043e fn print&lt;'a&gt;(s: &amp;'a str);  \/\/ \u043d\u0435\u044f\u0432\u043d\u043e fn trim(s: &amp;str) -&gt; &amp;str;  \/\/ \u0432\u044b\u0432\u0435\u0434\u0435\u043d\u043e fn trim&lt;'a&gt;(s: &amp;'a str) -&gt; &amp;'a str;  \/\/ \u043f\u0440\u0430\u0432\u0438\u043b\u0430 \u0432\u044b\u0432\u043e\u0434\u0430 \u043d\u0435\u043f\u0440\u0438\u043c\u0435\u043d\u0438\u043c\u044b, \u043d\u0435\u043b\u044c\u0437\u044f \u0432\u044b\u0432\u0435\u0441\u0442\u0438 \u0432\u0440\u0435\u043c\u044f \u0436\u0438\u0437\u043d\u0438 \u0432\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u043c\u043e\u0433\u043e \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f, \/\/ \u0442. \u043a. \u043d\u0435\u0442 \u0432\u0445\u043e\u0434\u043d\u044b\u0445 \u0432\u0440\u0435\u043c\u0451\u043d \u0436\u0438\u0437\u043d\u0438 fn get_str() -&gt; &amp;str;  \/\/ \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u044b\u0435 \u0432\u0430\u0440\u0438\u0430\u043d\u0442\u044b \u044f\u0432\u043d\u044b\u0445 \u0430\u043d\u043d\u043e\u0442\u0430\u0446\u0438\u0439 fn get_str&lt;'a&gt;() -&gt; &amp;'a str; \/\/ \u043e\u0431\u043e\u0431\u0449\u0451\u043d\u043d\u0430\u044f \u0432\u0435\u0440\u0441\u0438\u044f fn get_str() -&gt; &amp;'static str; \/\/ 'static \u0432\u0435\u0440\u0441\u0438\u044f  \/\/ \u043f\u0440\u0430\u0432\u0438\u043b\u0430 \u0432\u044b\u0432\u043e\u0434\u0430 \u043d\u0435\u043f\u0440\u0438\u043c\u0435\u043d\u0438\u043c\u044b, \u043d\u0435\u043b\u044c\u0437\u044f \u0432\u044b\u0432\u0435\u0441\u0442\u0438 \u0432\u0440\u0435\u043c\u044f \u0436\u0438\u0437\u043d\u0438 \u0432\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u043c\u043e\u0433\u043e \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f, \/\/ \u0442. \u043a. \u0435\u0441\u0442\u044c \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u0432\u0445\u043e\u0434\u043d\u044b\u0445 \u0432\u0440\u0435\u043c\u0451\u043d \u0436\u0438\u0437\u043d\u0438 fn overlap(s: &amp;str, t: &amp;str) -&gt; &amp;str;  \/\/ \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u044b\u0435 \u0432\u0430\u0440\u0438\u0430\u043d\u0442\u044b \u0441 \u044f\u0432\u043d\u044b\u043c \u0443\u043a\u0430\u0437\u0430\u043d\u0438\u0435\u043c \u0432\u0440\u0435\u043c\u0451\u043d \u0436\u0438\u0437\u043d\u0438 \/\/ (\u043d\u043e \u0432\u0441\u0451 \u0440\u0430\u0432\u043d\u043e \u0441 \u0447\u0430\u0441\u0442\u0438\u0447\u043d\u044b\u043c \u0432\u044b\u0432\u043e\u0434\u043e\u043c) fn overlap&lt;'a&gt;(s: &amp;'a str, t: &amp;str) -&gt; &amp;'a str; \/\/ \u0432\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u043c\u043e\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u043d\u0435 \u043c\u043e\u0436\u0435\u0442 \u043f\u0440\u043e\u0436\u0438\u0442\u044c \u0434\u043e\u043b\u044c\u0448\u0435 s fn overlap&lt;'a&gt;(s: &amp;str, t: &amp;'a str) -&gt; &amp;'a str; \/\/ \u0432\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u043c\u043e\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u043d\u0435 \u043c\u043e\u0436\u0435\u0442 \u043f\u0440\u043e\u0436\u0438\u0442\u044c \u0434\u043e\u043b\u044c\u0448\u0435 t fn overlap&lt;'a&gt;(s: &amp;'a str, t: &amp;'a str) -&gt; &amp;'a str; \/\/ \u0432\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u043c\u043e\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u043d\u0435 \u043c\u043e\u0436\u0435\u0442 \u043f\u0440\u043e\u0436\u0438\u0442\u044c \u0434\u043e\u043b\u044c\u0448\u0435 s \u0438 t fn overlap(s: &amp;str, t: &amp;str) -&gt; &amp;'static str; \/\/ \u0432\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u043c\u043e\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u043c\u043e\u0436\u0435\u0442 \u043f\u0440\u043e\u0436\u0438\u0442\u044c \u0434\u043e\u043b\u044c\u0448\u0435 s \u0438 t fn overlap&lt;'a&gt;(s: &amp;str, t: &amp;str) -&gt; &amp;'a str; \/\/ \u043d\u0438\u043a\u0430\u043a\u043e\u0439 \u0441\u0432\u044f\u0437\u0438 \u043c\u0435\u0436\u0434\u0443 \u0432\u0445\u043e\u0434\u043d\u044b\u043c\u0438 \u0438 \u0432\u044b\u0445\u043e\u0434\u043d\u044b\u043c\u0438 \u0432\u0440\u0435\u043c\u0435\u043d\u0430\u043c\u0438 \u0436\u0438\u0437\u043d\u0438  \/\/ \u0432\u044b\u0432\u0435\u0434\u0435\u043d\u043e fn overlap&lt;'a, 'b&gt;(s: &amp;'a str, t: &amp;'b str) -&gt; &amp;'a str; fn overlap&lt;'a, 'b&gt;(s: &amp;'a str, t: &amp;'b str) -&gt; &amp;'b str; fn overlap&lt;'a&gt;(s: &amp;'a str, t: &amp;'a str) -&gt; &amp;'a str; fn overlap&lt;'a, 'b&gt;(s: &amp;'a str, t: &amp;'b str) -&gt; &amp;'static str; fn overlap&lt;'a, 'b, 'c&gt;(s: &amp;'a str, t: &amp;'b str) -&gt; &amp;'c str;  \/\/ \u043d\u0435\u044f\u0432\u043d\u043e fn compare(&amp;self, s: &amp;str) -&gt; &amp;str;  \/\/ \u0432\u044b\u0432\u0435\u0434\u0435\u043d\u043e fn compare&lt;'a, 'b&gt;(&amp;'a self, &amp;'b str) -&gt; &amp;'a str;<\/code><\/pre>\n<p>  <\/p>\n<p>\u0415\u0441\u043b\u0438 \u0432\u044b \u043a\u043e\u0433\u0434\u0430-\u043d\u0438\u0431\u0443\u0434\u044c \u043f\u0438\u0441\u0430\u043b\u0438:<\/p>\n<p>  <\/p>\n<ul>\n<li>\u043c\u0435\u0442\u043e\u0434 \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u044b<\/li>\n<li>\u0444\u0443\u043d\u043a\u0446\u0438\u044e, \u043f\u0440\u0438\u043d\u0438\u043c\u0430\u044e\u0449\u0443\u044e \u0441\u0441\u044b\u043b\u043a\u0438<\/li>\n<li>\u0444\u0443\u043d\u043a\u0446\u0438\u044e, \u0432\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u044e\u0449\u0443\u044e \u0441\u0441\u044b\u043b\u043a\u0438<\/li>\n<li>\u043e\u0431\u043e\u0431\u0449\u0451\u043d\u043d\u0443\u044e \u0444\u0443\u043d\u043a\u0446\u0438\u044e<\/li>\n<li>\u0442\u0440\u0435\u0439\u0442-\u043e\u0431\u044a\u0435\u043a\u0442 (\u043f\u043e\u0434\u0440\u043e\u0431\u043d\u0435\u0435 \u043e\u0431 \u044d\u0442\u043e\u043c \u043f\u043e\u0437\u0436\u0435)<\/li>\n<li>\u0437\u0430\u043c\u044b\u043a\u0430\u043d\u0438\u0435 (\u043f\u043e\u0434\u0440\u043e\u0431\u043d\u0435\u0435 \u043e\u0431 \u044d\u0442\u043e\u043c \u043f\u043e\u0437\u0436\u0435)<\/li>\n<\/ul>\n<p>  <\/p>\n<p>\u0442\u043e \u0442\u043e\u0433\u0434\u0430 \u043f\u043e\u0432\u0441\u044e\u0434\u0443 \u0432 \u0432\u0430\u0448\u0435\u043c \u043a\u043e\u0434\u0435 \u0435\u0441\u0442\u044c \u0432\u044b\u0432\u0435\u0434\u0435\u043d\u043d\u044b\u0435 \u0430\u043d\u043d\u043e\u0442\u0430\u0446\u0438\u0438 \u0432\u0440\u0435\u043c\u0451\u043d \u0436\u0438\u0437\u043d\u0438.<\/p>\n<p>  <\/p>\n<p><strong>\u041a\u043b\u044e\u0447\u0435\u0432\u044b\u0435 \u0432\u044b\u0432\u043e\u0434\u044b<\/strong><\/p>\n<p>  <\/p>\n<ul>\n<li>\u043f\u043e\u0447\u0442\u0438 \u0432\u0435\u0441\u044c \u043a\u043e\u0434 Rust \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u043e\u0431\u043e\u0431\u0449\u0451\u043d\u043d\u044b\u043c \u043a\u043e\u0434\u043e\u043c, \u0438 \u0432\u0435\u0437\u0434\u0435 \u0435\u0441\u0442\u044c \u0432\u044b\u0432\u0435\u0434\u0435\u043d\u043d\u044b\u0435 \u0430\u043d\u043d\u043e\u0442\u0430\u0446\u0438\u0438 \u0432\u0440\u0435\u043c\u0451\u043d \u0436\u0438\u0437\u043d\u0438<\/li>\n<\/ul>\n<p>  <\/p>\n<h3 id=\"anchor5-if-it-compiles-then-my-lifetime-annotations-are-correctanchor-5-esli-moy-kod-kompiliruetsya-to-moi-annotacii-vremyon-zhizni-verny\"><a name=\"5-if-it-compiles-then-my-lifetime-annotations-are-correct\"><\/a> 5) \u0435\u0441\u043b\u0438 \u043c\u043e\u0439 \u043a\u043e\u0434 \u043a\u043e\u043c\u043f\u0438\u043b\u0438\u0440\u0443\u0435\u0442\u0441\u044f, \u0442\u043e \u043c\u043e\u0438 \u0430\u043d\u043d\u043e\u0442\u0430\u0446\u0438\u0438 \u0432\u0440\u0435\u043c\u0451\u043d \u0436\u0438\u0437\u043d\u0438 \u0432\u0435\u0440\u043d\u044b<\/h3>\n<p>  <\/p>\n<p><strong>\u041e\u0448\u0438\u0431\u043e\u0447\u043d\u044b\u0435 \u0432\u044b\u0432\u043e\u0434\u044b<\/strong><\/p>\n<p>  <\/p>\n<ul>\n<li>\u041f\u0440\u0430\u0432\u0438\u043b\u0430 \u0432\u044b\u0432\u043e\u0434\u0430 \u0432\u0440\u0435\u043c\u0451\u043d \u0436\u0438\u0437\u043d\u0438 \u0434\u043b\u044f \u0444\u0443\u043d\u043a\u0446\u0438\u0439 \u0432\u0441\u0435\u0433\u0434\u0430 \u0432\u0435\u0440\u043d\u044b<\/li>\n<li>\u0410\u043d\u0430\u043b\u0438\u0437\u0430\u0442\u043e\u0440 \u0437\u0430\u0438\u043c\u0441\u0442\u0432\u043e\u0432\u0430\u043d\u0438\u0439 (borrow checker) \u0432 Rust \u0432\u0441\u0435\u0433\u0434\u0430 \u043f\u0440\u0430\u0432, \u0438 \u0442\u0435\u0445\u043d\u0438\u0447\u0435\u0441\u043a\u0438, <em>\u0438 \u0441\u0435\u043c\u0430\u043d\u0442\u0438\u0447\u0435\u0441\u043a\u0438<\/em><\/li>\n<li>Rust \u0437\u043d\u0430\u0435\u0442 \u043e \u0441\u0435\u043c\u0430\u043d\u0442\u0438\u043a\u0435 \u043c\u043e\u0435\u0439 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u044b \u0431\u043e\u043b\u044c\u0448\u0435 \u043c\u0435\u043d\u044f<\/li>\n<\/ul>\n<p>  <\/p>\n<p>\u041f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0430 \u043d\u0430 Rust \u043c\u043e\u0436\u0435\u0442 \u0431\u044b\u0442\u044c \u0442\u0435\u0445\u043d\u0438\u0447\u0435\u0441\u043a\u0438 \u043a\u043e\u043c\u043f\u0438\u043b\u0438\u0440\u0443\u0435\u043c\u043e\u0439, \u043d\u043e \u0432 \u0442\u043e \u0436\u0435 \u0432\u0440\u0435\u043c\u044f \u0441\u0435\u043c\u0430\u043d\u0442\u0438\u0447\u0435\u0441\u043a\u0438 \u043d\u0435\u0432\u0435\u0440\u043d\u043e\u0439. \u0420\u0430\u0441\u0441\u043c\u043e\u0442\u0440\u0438\u043c \u043f\u0440\u0438\u043c\u0435\u0440:<\/p>\n<p>  <\/p>\n<pre><code class=\"rust\">struct ByteIter&lt;'a&gt; {     remainder: &amp;'a [u8] }  impl&lt;'a&gt; ByteIter&lt;'a&gt; {     fn next(&amp;mut self) -&gt; Option&lt;&amp;u8&gt; {         if self.remainder.is_empty() {             None         } else {             let byte = &amp;self.remainder[0];             self.remainder = &amp;self.remainder[1..];             Some(byte)         }     } }  fn main() {     let mut bytes = ByteIter { remainder: b&quot;1&quot; };     assert_eq!(Some(&amp;b'1'), bytes.next());     assert_eq!(None, bytes.next()); }<\/code><\/pre>\n<p>  <\/p>\n<p><code>ByteIter<\/code> \u2014 \u044d\u0442\u043e \u0438\u0442\u0435\u0440\u0430\u0442\u043e\u0440, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043f\u0435\u0440\u0435\u0431\u0438\u0440\u0430\u0435\u0442 \u0441\u0440\u0435\u0437 \u0431\u0430\u0439\u0442\u043e\u0432. \u0414\u043b\u044f \u043a\u0440\u0430\u0442\u043a\u043e\u0441\u0442\u0438 \u043c\u044b \u043f\u0440\u043e\u043f\u0443\u0441\u0442\u0438\u043b\u0438 \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044e \u0442\u0440\u0435\u0439\u0442\u0430 <code>Iterator<\/code>. \u041a\u0430\u0436\u0435\u0442\u0441\u044f, \u0432\u0441\u0451 \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442 \u043d\u043e\u0440\u043c\u0430\u043b\u044c\u043d\u043e, \u043d\u043e \u0447\u0442\u043e, \u0435\u0441\u043b\u0438 \u043c\u044b \u0445\u043e\u0442\u0438\u043c \u043f\u0440\u043e\u0432\u0435\u0440\u0438\u0442\u044c \u043f\u0430\u0440\u0443 \u0431\u0430\u0439\u0442\u043e\u0432 \u0437\u0430 \u0440\u0430\u0437?<\/p>\n<p>  <\/p>\n<pre><code class=\"rust\">fn main() {     let mut bytes = ByteIter { remainder: b&quot;1123&quot; };     let byte_1 = bytes.next();     let byte_2 = bytes.next();     if byte_1 == byte_2 {         \/\/ \u0447\u0442\u043e-\u0442\u043e \u0434\u0435\u043b\u0430\u0435\u043c     } }<\/code><\/pre>\n<p>  <\/p>\n<p>\u041e\u0439! \u041e\u0448\u0438\u0431\u043a\u0430 \u043a\u043e\u043c\u043f\u0438\u043b\u044f\u0446\u0438\u0438:<\/p>\n<p>  <\/p>\n<pre><code class=\"rust\">error[E0499]: cannot borrow `bytes` as mutable more than once at a time   --&gt; src\/main.rs:20:18    | 19 |     let byte_1 = bytes.next();    |                  ----- first mutable borrow occurs here 20 |     let byte_2 = bytes.next();    |                  ^^^^^ second mutable borrow occurs here 21 |     if byte_1 == byte_2 {    |        ------ first borrow later used here<\/code><\/pre>\n<p>  <\/p>\n<p>\u0414\u0443\u043c\u0430\u044e, \u043c\u044b \u043c\u043e\u0436\u0435\u043c \u043f\u043e\u0437\u0432\u043e\u043b\u0438\u0442\u044c \u0441\u0435\u0431\u0435 \u0441\u043a\u043e\u043f\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u043a\u0430\u0436\u0434\u044b\u0439 \u0431\u0430\u0439\u0442. \u041a\u043e\u043f\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u2014 \u044d\u0442\u043e \u043d\u043e\u0440\u043c\u0430\u043b\u044c\u043d\u043e, \u043a\u043e\u0433\u0434\u0430 \u043c\u044b \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u043c \u0441 \u0431\u0430\u0439\u0442\u0430\u043c\u0438, \u043d\u043e \u0435\u0441\u043b\u0438 \u043c\u044b \u043f\u0440\u0435\u0432\u0440\u0430\u0442\u0438\u043c <code>ByteIter<\/code> \u0432 \u043e\u0431\u043e\u0431\u0449\u0451\u043d\u043d\u044b\u0439 \u0438\u0442\u0435\u0440\u0430\u0442\u043e\u0440 \u0441\u0440\u0435\u0437\u0430, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043c\u043e\u0436\u0435\u0442 \u043f\u0435\u0440\u0435\u0431\u0438\u0440\u0430\u0442\u044c \u043b\u044e\u0431\u043e\u0439 <code>&amp;'a [T]<\/code>, \u0442\u043e \u043c\u044b \u043c\u043e\u0433\u043b\u0438 \u0431\u044b \u0437\u0430\u0445\u043e\u0442\u0435\u0442\u044c \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0435\u0433\u043e \u0432 \u0431\u0443\u0434\u0443\u0449\u0435\u043c \u0441 \u0442\u0438\u043f\u0430\u043c\u0438, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0434\u043e\u0440\u043e\u0433\u043e \u0438\u043b\u0438 \u0432\u043e\u0432\u0441\u0435 \u043d\u0435\u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e \u043a\u043e\u043f\u0438\u0440\u043e\u0432\u0430\u0442\u044c\/\u043a\u043b\u043e\u043d\u0438\u0440\u043e\u0432\u0430\u0442\u044c. \u0427\u0442\u043e \u0436, \u044f \u0434\u0443\u043c\u0430\u044e, \u043c\u044b \u043d\u0438\u0447\u0435\u0433\u043e \u043d\u0435 \u043c\u043e\u0436\u0435\u043c \u0441 \u044d\u0442\u0438\u043c \u043f\u043e\u0434\u0435\u043b\u0430\u0442\u044c, \u0432\u0435\u0434\u044c \u043a\u043e\u0434 \u043a\u043e\u043c\u043f\u0438\u043b\u0438\u0440\u0443\u0435\u0442\u0441\u044f, \u0430 \u0437\u043d\u0430\u0447\u0438\u0442, \u0430\u043d\u043d\u043e\u0442\u0430\u0446\u0438\u0438 \u0432\u0440\u0435\u043c\u0451\u043d \u0436\u0438\u0437\u043d\u0438 \u0434\u043e\u043b\u0436\u043d\u044b \u0431\u044b\u0442\u044c \u043f\u0440\u0430\u0432\u0438\u043b\u044c\u043d\u044b\u043c\u0438, \u0432\u0435\u0434\u044c \u0442\u0430\u043a?<\/p>\n<p>  <\/p>\n<p>\u041e\u0442\u043d\u044e\u0434\u044c, \u0442\u0435\u043a\u0443\u0449\u0438\u0435 \u0430\u043d\u043d\u043e\u0442\u0430\u0446\u0438\u0438 \u0432\u0440\u0435\u043c\u0451\u043d \u0436\u0438\u0437\u043d\u0438 \u043d\u0430 \u0441\u0430\u043c\u043e\u043c \u0434\u0435\u043b\u0435 \u044f\u0432\u043b\u044f\u044e\u0442\u0441\u044f \u0438\u0441\u0442\u043e\u0447\u043d\u0438\u043a\u043e\u043c \u043e\u0448\u0438\u0431\u043a\u0438! \u042d\u0442\u043e \u043e\u0441\u043e\u0431\u0435\u043d\u043d\u043e \u0442\u0440\u0443\u0434\u043d\u043e \u0437\u0430\u043c\u0435\u0442\u0438\u0442\u044c, \u043f\u043e\u0442\u043e\u043c\u0443 \u0447\u0442\u043e \u043e\u0448\u0438\u0431\u043e\u0447\u043d\u044b\u0435 \u0430\u043d\u043d\u043e\u0442\u0430\u0446\u0438\u0438 \u0436\u0438\u0437\u043d\u0438 \u043e\u043f\u0443\u0449\u0435\u043d\u044b. \u0414\u0430\u0432\u0430\u0439\u0442\u0435 \u0432\u044b\u043f\u0438\u0448\u0435\u043c \u0440\u0430\u0437\u0432\u0451\u0440\u043d\u0443\u0442\u044b\u0435 \u0430\u043d\u043d\u043e\u0442\u0430\u0446\u0438\u0438 \u0432\u0440\u0435\u043c\u0451\u043d \u0436\u0438\u0437\u043d\u0438, \u0447\u0442\u043e\u0431\u044b \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c \u0431\u043e\u043b\u0435\u0435 \u0447\u0451\u0442\u043a\u043e\u0435 \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u0438\u0435 \u043e \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u0435:<\/p>\n<p>  <\/p>\n<pre><code class=\"rust\">struct ByteIter&lt;'a&gt; {     remainder: &amp;'a [u8] }  impl&lt;'a&gt; ByteIter&lt;'a&gt; {     fn next&lt;'b&gt;(&amp;'b mut self) -&gt; Option&lt;&amp;'b u8&gt; {         if self.remainder.is_empty() {             None         } else {             let byte = &amp;self.remainder[0];             self.remainder = &amp;self.remainder[1..];             Some(byte)         }     } }<\/code><\/pre>\n<p>  <\/p>\n<p>\u042d\u0442\u043e \u0441\u043e\u0432\u0441\u0435\u043c \u043d\u0435 \u043f\u043e\u043c\u043e\u0433\u043b\u043e. \u042f \u0432\u0441\u0451 \u0435\u0449\u0451 \u0432 \u0437\u0430\u043c\u0435\u0448\u0430\u0442\u0435\u043b\u044c\u0441\u0442\u0432\u0435. \u0412\u043e\u0442 \u0445\u043e\u0440\u043e\u0448\u0430\u044f \u0443\u043b\u043e\u0432\u043a\u0430, \u043a\u043e\u0442\u043e\u0440\u0443\u044e \u0437\u043d\u0430\u044e\u0442 \u0442\u043e\u043b\u044c\u043a\u043e \u043f\u0440\u043e\u0444\u0435\u0441\u0441\u0438\u043e\u043d\u0430\u043b\u044b Rust: \u0434\u0430\u0432\u0430\u0439\u0442\u0435 \u0430\u043d\u043d\u043e\u0442\u0430\u0446\u0438\u044f\u043c \u0432\u0440\u0435\u043c\u0451\u043d \u0436\u0438\u0437\u043d\u0438 \u043e\u0441\u043c\u044b\u0441\u043b\u0435\u043d\u043d\u044b\u0435 \u0438\u043c\u0435\u043d\u0430. \u041f\u043e\u043f\u0440\u043e\u0431\u0443\u0435\u043c \u0435\u0449\u0451 \u0440\u0430\u0437:<\/p>\n<p>  <\/p>\n<pre><code class=\"rust\">struct ByteIter&lt;'remainder&gt; {     remainder: &amp;'remainder [u8] }  impl&lt;'remainder&gt; ByteIter&lt;'remainder&gt; {     fn next&lt;'mut_self&gt;(&amp;'mut_self mut self) -&gt; Option&lt;&amp;'mut_self u8&gt; {         if self.remainder.is_empty() {             None         } else {             let byte = &amp;self.remainder[0];             self.remainder = &amp;self.remainder[1..];             Some(byte)         }     } }<\/code><\/pre>\n<p>  <\/p>\n<p>\u041a\u0430\u0436\u0434\u044b\u0439 \u0432\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u043c\u044b\u0439 \u0431\u0430\u0439\u0442 \u0430\u043d\u043d\u043e\u0442\u0438\u0440\u043e\u0432\u0430\u043d <code>'mut_self<\/code>, \u043d\u043e \u0431\u0430\u0439\u0442\u044b \u044f\u0432\u043d\u043e \u043f\u043e\u0441\u0442\u0443\u043f\u0430\u044e\u0442 \u0438\u0437 <code>'remainder<\/code>! \u0414\u0430\u0432\u0430\u0439\u0442\u0435 \u0438\u0441\u043f\u0440\u0430\u0432\u0438\u043c \u044d\u0442\u043e.<\/p>\n<p>  <\/p>\n<pre><code class=\"rust\">struct ByteIter&lt;'remainder&gt; {     remainder: &amp;'remainder [u8] }  impl&lt;'remainder&gt; ByteIter&lt;'remainder&gt; {     fn next(&amp;mut self) -&gt; Option&lt;&amp;'remainder u8&gt; {         if self.remainder.is_empty() {             None         } else {             let byte = &amp;self.remainder[0];             self.remainder = &amp;self.remainder[1..];             Some(byte)         }     } }  fn main() {     let mut bytes = ByteIter { remainder: b&quot;1123&quot; };     let byte_1 = bytes.next();     let byte_2 = bytes.next();     std::mem::drop(bytes); \/\/ \u0442\u0435\u043f\u0435\u0440\u044c \u043c\u044b \u0434\u0430\u0436\u0435 \u043c\u043e\u0436\u0435\u043c \u0443\u0434\u0430\u043b\u0438\u0442\u044c \u0438\u0442\u0435\u0440\u0430\u0442\u043e\u0440!     if byte_1 == byte_2 { \/\/ \u043a\u043e\u043c\u043f\u0438\u043b\u0438\u0440\u0443\u0435\u0442\u0441\u044f         \/\/ \u0447\u0442\u043e-\u0442\u043e \u0434\u0435\u043b\u0430\u0435\u043c     } }<\/code><\/pre>\n<p>  <\/p>\n<p>\u0422\u0435\u043f\u0435\u0440\u044c, \u0440\u0430\u0441\u0441\u043c\u0430\u0442\u0440\u0438\u0432\u0430\u044f \u043f\u0440\u0435\u0434\u044b\u0434\u0443\u0449\u0443\u044e \u0432\u0435\u0440\u0441\u0438\u044e \u043d\u0430\u0448\u0435\u0439 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u044b, \u043c\u044b \u0432\u0438\u0434\u0438\u043c, \u0447\u0442\u043e \u043e\u043d\u0430 \u044f\u0432\u043d\u043e \u0431\u044b\u043b\u0430 \u043e\u0448\u0438\u0431\u043e\u0447\u043d\u043e\u0439. \u0422\u0430\u043a \u043f\u043e\u0447\u0435\u043c\u0443 \u0436\u0435 Rust \u0441\u043a\u043e\u043c\u043f\u0438\u043b\u0438\u0440\u043e\u0432\u0430\u043b \u0435\u0435? \u041e\u0442\u0432\u0435\u0442 \u043f\u0440\u043e\u0441\u0442: \u044d\u0442\u043e \u0431\u044b\u043b\u043e \u0431\u0435\u0437\u043e\u043f\u0430\u0441\u043d\u044b\u043c \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435\u043c \u043f\u0430\u043c\u044f\u0442\u0438 (memory safe).<\/p>\n<p>  <\/p>\n<p>\u0410\u043d\u0430\u043b\u0438\u0437\u0430\u0442\u043e\u0440 \u0437\u0430\u0438\u043c\u0441\u0442\u0432\u043e\u0432\u0430\u043d\u0438\u0439 (borrow checker) Rust-\u0430 \u0437\u0430\u0431\u043e\u0442\u0438\u0442\u0441\u044f \u043e \u0430\u043d\u043d\u043e\u0442\u0430\u0446\u0438\u044f\u0445 \u0432\u0440\u0435\u043c\u0451\u043d \u0436\u0438\u0437\u043d\u0438 \u0432 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0435 \u0442\u043e\u043b\u044c\u043a\u043e \u0434\u043e \u0442\u043e\u0439 \u0441\u0442\u0435\u043f\u0435\u043d\u0438, \u0434\u043e \u043a\u043e\u0442\u043e\u0440\u043e\u0439 \u043e\u043d \u043c\u043e\u0436\u0435\u0442 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0438\u0445 \u0434\u043b\u044f \u0441\u0442\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u043e\u0439 \u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0438 \u0431\u0435\u0437\u043e\u043f\u0430\u0441\u043d\u043e\u0441\u0442\u0438 \u0440\u0430\u0431\u043e\u0442\u044b \u0441 \u043f\u0430\u043c\u044f\u0442\u044c\u044e. Rust \u0441 \u0440\u0430\u0434\u043e\u0441\u0442\u044c\u044e \u0441\u043a\u043e\u043c\u043f\u0438\u043b\u0438\u0440\u0443\u0435\u0442 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u044b, \u0434\u0430\u0436\u0435 \u0435\u0441\u043b\u0438 \u0430\u043d\u043d\u043e\u0442\u0430\u0446\u0438\u0438 \u0432\u0440\u0435\u043c\u0451\u043d \u0436\u0438\u0437\u043d\u0438 \u0441\u043e\u0434\u0435\u0440\u0436\u0430\u0442 \u0441\u0435\u043c\u0430\u043d\u0442\u0438\u0447\u0435\u0441\u043a\u0438\u0435 \u043e\u0448\u0438\u0431\u043a\u0438 \u0438 \u0438\u0437-\u0437\u0430 \u044d\u0442\u043e\u0433\u043e \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0430 \u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u0441\u044f \u0438\u0437\u043b\u0438\u0448\u043d\u0435 \u0441\u0442\u0440\u043e\u0433\u043e\u0439.<\/p>\n<p>  <\/p>\n<p>\u0412\u043e\u0442 \u043f\u0440\u043e\u0441\u0442\u043e\u0439 \u043f\u0440\u0438\u043c\u0435\u0440, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043f\u0440\u043e\u0442\u0438\u0432\u043e\u043f\u043e\u043b\u043e\u0436\u0435\u043d \u043f\u0440\u0435\u0434\u044b\u0434\u0443\u0449\u0435\u043c\u0443: \u043f\u0440\u0430\u0432\u0438\u043b\u0430 \u0432\u044b\u0432\u043e\u0434\u0430 \u0432\u0440\u0435\u043c\u0451\u043d \u0436\u0438\u0437\u043d\u0438 Rust \u0432 \u0434\u0430\u043d\u043d\u043e\u043c \u0441\u043b\u0443\u0447\u0430\u0435 \u0441\u0435\u043c\u0430\u043d\u0442\u0438\u0447\u0435\u0441\u043a\u0438 \u043a\u043e\u0440\u0440\u0435\u043a\u0442\u043d\u044b, \u043d\u043e \u043c\u044b \u043d\u0435\u043f\u0440\u0435\u0434\u043d\u0430\u043c\u0435\u0440\u0435\u043d\u043d\u043e \u043f\u0438\u0448\u0435\u043c \u043e\u0447\u0435\u043d\u044c \u043e\u0433\u0440\u0430\u043d\u0438\u0447\u0435\u043d\u043d\u044b\u0439 \u043c\u0435\u0442\u043e\u0434 \u0441 \u043d\u0430\u0448\u0438\u043c\u0438 \u0441\u043e\u0431\u0441\u0442\u0432\u0435\u043d\u043d\u044b\u043c\u0438 \u043d\u0435\u043d\u0443\u0436\u043d\u044b\u043c\u0438 \u044f\u0432\u043d\u044b\u043c\u0438 \u0430\u043d\u043d\u043e\u0442\u0430\u0446\u0438\u044f\u043c\u0438 \u0432\u0440\u0435\u043c\u0451\u043d \u0436\u0438\u0437\u043d\u0438.<\/p>\n<p>  <\/p>\n<pre><code class=\"rust\">#[derive(Debug)] struct NumRef&lt;'a&gt;(&amp;'a i32);  impl&lt;'a&gt; NumRef&lt;'a&gt; {     \/\/ \u043c\u043e\u044f \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0430 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u0438\u0437\u043e\u0432\u0430\u043d\u0430 'a, \u0442\u0430\u043a \u0447\u0442\u043e \u043c\u043d\u0435 \u043d\u0443\u0436\u043d\u043e     \/\/ \u0442\u0430\u043a\u0436\u0435 \u0430\u043d\u043d\u043e\u0442\u0438\u0440\u043e\u0432\u0430\u0442\u044c self 'a, \u0432\u0435\u0440\u043d\u043e? (\u043e\u0442\u0432\u0435\u0442: \u043d\u0435\u0442, \u043d\u0435 \u0432\u0435\u0440\u043d\u043e)     fn some_method(&amp;'a mut self) {} }  fn main() {     let mut num_ref = NumRef(&amp;5);     num_ref.some_method(); \/\/ \u0438\u0437\u043c\u0435\u043d\u044f\u0435\u043c\u043e \u0437\u0430\u0438\u043c\u0441\u0442\u0432\u0443\u0435\u0442 num_ref \u0434\u043e \u043a\u043e\u043d\u0446\u0430 \u0435\u0451 \u0432\u0440\u0435\u043c\u0435\u043d\u0438 \u0436\u0438\u0437\u043d\u0438     num_ref.some_method(); \/\/ \u043e\u0448\u0438\u0431\u043a\u0430 \u043a\u043e\u043c\u043f\u0438\u043b\u044f\u0446\u0438\u0438     println!(&quot;{:?}&quot;, num_ref); \/\/ \u0442\u0430\u043a\u0436\u0435 \u043e\u0448\u0438\u0431\u043a\u0430 \u043a\u043e\u043c\u043f\u0438\u043b\u044f\u0446\u0438\u0438 }<\/code><\/pre>\n<p>  <\/p>\n<p>\u0415\u0441\u043b\u0438 \u0443 \u043d\u0430\u0441 \u0435\u0441\u0442\u044c \u043a\u0430\u043a\u0430\u044f-\u0442\u043e \u043e\u0431\u043e\u0431\u0449\u0451\u043d\u043d\u0430\u044f \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0430, \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u0438\u0437\u043e\u0432\u0430\u043d\u043d\u0430\u044f <code>'a<\/code>, \u0442\u043e \u043c\u044b \u043f\u043e\u0447\u0442\u0438 \u043d\u0438\u043a\u043e\u0433\u0434\u0430 \u043d\u0435 \u0445\u043e\u0442\u0438\u043c \u043f\u0438\u0441\u0430\u0442\u044c \u043c\u0435\u0442\u043e\u0434 \u0441 \u0430\u0440\u0433\u0443\u043c\u0435\u043d\u0442\u043e\u043c <code>&amp;'a mut self<\/code>. \u041c\u044b \u0442\u0430\u043a\u0438\u043c \u043e\u0431\u0440\u0430\u0437\u043e\u043c \u0441\u043e\u043e\u0431\u0449\u0430\u0435\u043c Rust, \u0447\u0442\u043e \u00ab\u044d\u0442\u043e\u0442 \u043c\u0435\u0442\u043e\u0434 \u0431\u0443\u0434\u0435\u0442 \u0438\u0437\u043c\u0435\u043d\u044f\u0435\u043c\u043e \u0437\u0430\u0438\u043c\u0441\u0442\u0432\u043e\u0432\u0430\u0442\u044c \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0443 \u043d\u0430 \u0432\u0441\u0451 \u0435\u0451 \u0432\u0440\u0435\u043c\u044f \u0436\u0438\u0437\u043d\u0438\u00bb. \u041d\u0430 \u043f\u0440\u0430\u043a\u0442\u0438\u043a\u0435 \u044d\u0442\u043e \u043e\u0437\u043d\u0430\u0447\u0430\u0435\u0442, \u0447\u0442\u043e \u0430\u043d\u0430\u043b\u0438\u0437\u0430\u0442\u043e\u0440 \u0437\u0430\u0438\u043c\u0441\u0442\u0432\u043e\u0432\u0430\u043d\u0438\u0439 Rust \u0440\u0430\u0437\u0440\u0435\u0448\u0438\u0442 \u043d\u0435 \u0431\u043e\u043b\u0435\u0435 \u043e\u0434\u043d\u043e\u0433\u043e \u0432\u044b\u0437\u043e\u0432\u0430 <code>some_method<\/code>, \u043f\u043e\u0441\u043b\u0435 \u043a\u043e\u0442\u043e\u0440\u043e\u0433\u043e \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0430 \u0441\u0442\u0430\u043d\u0435\u0442 \u043f\u0435\u0440\u043c\u0430\u043d\u0435\u043d\u0442\u043d\u043e \u0438\u0437\u043c\u0435\u043d\u044f\u0435\u043c\u043e \u0437\u0430\u0438\u043c\u0441\u0442\u0432\u043e\u0432\u0430\u043d\u043d\u043e\u0439 \u0438, \u0442\u0430\u043a\u0438\u043c \u043e\u0431\u0440\u0430\u0437\u043e\u043c, \u043d\u0435\u043f\u0440\u0438\u0433\u043e\u0434\u043d\u043e\u0439 \u043a \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435. \u0421\u043b\u0443\u0447\u0430\u0438, \u0432 \u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u044d\u0442\u043e \u0442\u0440\u0435\u0431\u0443\u0435\u0442\u0441\u044f, \u043a\u0440\u0430\u0439\u043d\u0435 \u0440\u0435\u0434\u043a\u0438, \u043d\u043e \u043f\u0440\u0438\u0432\u0435\u0434\u0435\u043d\u043d\u044b\u0439 \u0432\u044b\u0448\u0435 \u043a\u043e\u0434 \u043d\u043e\u0432\u0438\u0447\u043a\u0438 \u043e\u0447\u0435\u043d\u044c \u043b\u0435\u0433\u043a\u043e \u043c\u043e\u0433\u0443\u0442 \u043d\u0430\u043f\u0438\u0441\u0430\u0442\u044c \u043f\u043e \u043e\u0448\u0438\u0431\u043a\u0435, \u0438 \u043e\u043d \u043a\u043e\u043c\u043f\u0438\u043b\u0438\u0440\u0443\u0435\u0442\u0441\u044f. \u0418\u0441\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u0435 \u043e\u0448\u0438\u0431\u043a\u0438 \u0441\u043e\u0441\u0442\u043e\u0438\u0442 \u0432 \u0442\u043e\u043c, \u0447\u0442\u043e\u0431\u044b \u043d\u0435 \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u0442\u044c \u043d\u0435\u043d\u0443\u0436\u043d\u044b\u0435 \u044f\u0432\u043d\u044b\u0435 \u0430\u043d\u043d\u043e\u0442\u0430\u0446\u0438\u0438 \u0432\u0440\u0435\u043c\u0451\u043d \u0436\u0438\u0437\u043d\u0438 \u0438 \u043f\u043e\u043b\u043e\u0436\u0438\u0442\u044c\u0441\u044f \u043d\u0430 \u043f\u0440\u0430\u0432\u0438\u043b\u0430 \u0432\u044b\u0432\u043e\u0434\u0430 \u0432\u0440\u0435\u043c\u0451\u043d \u0436\u0438\u0437\u043d\u0438 Rust:<\/p>\n<p>  <\/p>\n<pre><code class=\"rust\">#[derive(Debug)] struct NumRef&lt;'a&gt;(&amp;'a i32);  impl&lt;'a&gt; NumRef&lt;'a&gt; {     \/\/ \u043d\u0430 mut self \u0431\u043e\u043b\u044c\u0448\u0435 \u043d\u0435\u0442 'a     fn some_method(&amp;mut self) {}      \/\/ \u0441\u0442\u0440\u043e\u0447\u043a\u0430 \u0432\u044b\u0448\u0435 \u0440\u0430\u0441\u0441\u0430\u0445\u0430\u0440\u0438\u0432\u0430\u0435\u0442\u0441\u044f \u0442\u0430\u043a\u0438\u043c \u043e\u0431\u0440\u0430\u0437\u043e\u043c     fn some_method_desugared&lt;'b&gt;(&amp;'b mut self){} }  fn main() {     let mut num_ref = NumRef(&amp;5);     num_ref.some_method();     num_ref.some_method(); \/\/ \u043a\u043e\u043c\u043f\u0438\u043b\u0438\u0440\u0443\u0435\u0442\u0441\u044f     println!(&quot;{:?}&quot;, num_ref); \/\/ \u043a\u043e\u043c\u043f\u0438\u043b\u0438\u0440\u0443\u0435\u0442\u0441\u044f }<\/code><\/pre>\n<p>  <\/p>\n<p><strong>\u041a\u043b\u044e\u0447\u0435\u0432\u044b\u0435 \u0432\u044b\u0432\u043e\u0434\u044b<\/strong><\/p>\n<p>  <\/p>\n<ul>\n<li>\u043f\u0440\u0430\u0432\u0438\u043b\u0430 \u0432\u044b\u0432\u043e\u0434\u0430 \u0432\u0440\u0435\u043c\u0451\u043d \u0436\u0438\u0437\u043d\u0438 Rust \u043d\u0435 \u0432\u0441\u0435\u0433\u0434\u0430 \u043f\u043e\u0434\u0445\u043e\u0434\u044f\u0442 \u043a \u043a\u043e\u043d\u043a\u0440\u0435\u0442\u043d\u043e\u0439 \u0441\u0438\u0442\u0443\u0430\u0446\u0438\u0438<\/li>\n<li>Rust \u043d\u0435 \u0437\u043d\u0430\u0435\u0442 \u043e \u0441\u0435\u043c\u0430\u043d\u0442\u0438\u043a\u0435 \u0432\u0430\u0448\u0435\u0439 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u044b \u0431\u043e\u043b\u044c\u0448\u0435, \u0447\u0435\u043c \u0432\u044b<\/li>\n<li>\u0434\u0430\u0432\u0430\u0439\u0442\u0435 \u0432\u0430\u0448\u0438\u043c \u0430\u043d\u043d\u043e\u0442\u0430\u0446\u0438\u044f\u043c \u0432\u0440\u0435\u043c\u0451\u043d \u0436\u0438\u0437\u043d\u0438 \u043e\u0441\u043c\u044b\u0441\u043b\u0435\u043d\u043d\u044b\u0435 \u0438\u043c\u0435\u043d\u0430<\/li>\n<li>\u0441\u0442\u0430\u0440\u0430\u0439\u0442\u0435\u0441\u044c \u043f\u043e\u043d\u0438\u043c\u0430\u0442\u044c, \u0433\u0434\u0435 \u0432\u044b \u0440\u0430\u0437\u043c\u0435\u0449\u0430\u0435\u0442\u0435 \u044f\u0432\u043d\u044b\u0435 \u0430\u043d\u043d\u043e\u0442\u0430\u0446\u0438\u0438 \u0432\u0440\u0435\u043c\u0451\u043d \u0436\u0438\u0437\u043d\u0438 \u0438 \u043f\u043e\u0447\u0435\u043c\u0443<\/li>\n<\/ul>\n<p>  <\/p>\n<h3 id=\"anchor6-boxed-trait-objects-dont-have-lifetimesanchor-6-treyt-obekty-za-vladeyuschimi-ukazatelyami-ne-imeyut-vremyon-zhizni\"><a name=\"6-boxed-trait-objects-dont-have-lifetimes\"><\/a> 6) \u0442\u0440\u0435\u0439\u0442-\u043e\u0431\u044a\u0435\u043a\u0442\u044b \u0437\u0430 \u0432\u043b\u0430\u0434\u0435\u044e\u0449\u0438\u043c\u0438 \u0443\u043a\u0430\u0437\u0430\u0442\u0435\u043b\u044f\u043c\u0438 \u043d\u0435 \u0438\u043c\u0435\u044e\u0442 \u0432\u0440\u0435\u043c\u0451\u043d \u0436\u0438\u0437\u043d\u0438<\/h3>\n<p>  <\/p>\n<p>\u0420\u0430\u043d\u0435\u0435 \u043c\u044b \u043e\u0431\u0441\u0443\u0436\u0434\u0430\u043b\u0438 \u043f\u0440\u0430\u0432\u0438\u043b\u0430 Rust \u0434\u043b\u044f \u0432\u044b\u0432\u043e\u0434\u0430 \u0432\u0440\u0435\u043c\u0451\u043d \u0436\u0438\u0437\u043d\u0438 \u043f\u0440\u0438\u043c\u0435\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u043a <em>\u0444\u0443\u043d\u043a\u0446\u0438\u044f\u043c<\/em>. \u0423 Rust \u0442\u0430\u043a\u0436\u0435 \u0435\u0441\u0442\u044c \u043f\u043e\u0434\u043e\u0431\u043d\u044b\u0435 \u043f\u0440\u0430\u0432\u0438\u043b\u0430 \u0434\u043b\u044f \u0442\u0440\u0435\u0439\u0442-\u043e\u0431\u044a\u0435\u043a\u0442\u043e\u0432:<\/p>\n<p>  <\/p>\n<ul>\n<li>\u0435\u0441\u043b\u0438 \u0442\u0440\u0435\u0439\u0442-\u043e\u0431\u044a\u0435\u043a\u0442 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f \u0432 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435 \u0442\u0438\u0301\u043f\u043e\u0432\u043e\u0433\u043e \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u0430 \u043e\u0431\u043e\u0431\u0449\u0451\u043d\u043d\u043e\u0433\u043e \u0442\u0438\u043f\u0430, \u0442\u043e \u0432\u0440\u0435\u043c\u044f \u0436\u0438\u0437\u043d\u0438 \u0442\u0440\u0435\u0439\u0442-\u043e\u0431\u044a\u0435\u043a\u0442\u0430 \u0432\u044b\u0432\u043e\u0434\u0438\u0442\u0441\u044f \u0438\u0437 \u044d\u0442\u043e\u0433\u043e \u0432\u043d\u0435\u0448\u043d\u0435\u0433\u043e \u043e\u0431\u043e\u0431\u0449\u0451\u043d\u043d\u043e\u0433\u043e \u0442\u0438\u043f\u0430<br \/> \n<ul>\n<li>\u0435\u0441\u043b\u0438 \u0435\u0441\u0442\u044c \u0442\u043e\u043b\u044c\u043a\u043e \u043e\u0434\u043d\u043e \u043e\u0433\u0440\u0430\u043d\u0438\u0447\u0435\u043d\u0438\u0435, \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0435\u0435 \u0438\u0437 \u0432\u043d\u0435\u0448\u043d\u0435\u0433\u043e \u0442\u0438\u043f\u0430, \u0442\u043e \u043e\u043d\u043e \u0438 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f<\/li>\n<li>\u0435\u0441\u043b\u0438 \u043e\u0433\u0440\u0430\u043d\u0438\u0447\u0435\u043d\u0438\u0439, \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0445 \u0438\u0437 \u0432\u043d\u0435\u0448\u043d\u0435\u0433\u043e \u0442\u0438\u043f\u0430, \u0431\u043e\u043b\u044c\u0448\u0435 \u043e\u0434\u043d\u043e\u0433\u043e, \u0442\u043e \u043e\u0433\u0440\u0430\u043d\u0438\u0447\u0435\u043d\u0438\u0435 \u0434\u043e\u043b\u0436\u043d\u043e \u0431\u044b\u0442\u044c \u0443\u043a\u0430\u0437\u0430\u043d\u043e \u044f\u0432\u043d\u043e<\/li>\n<\/ul>\n<\/li>\n<li>\u0435\u0441\u043b\u0438 \u043f\u0440\u0430\u0432\u0438\u043b\u0430 \u0432\u044b\u0448\u0435 \u043d\u0435 \u043f\u0440\u0438\u043c\u0435\u043d\u0438\u043c\u044b, \u0442\u043e<br \/> \n<ul>\n<li>\u0435\u0441\u043b\u0438 \u0442\u0440\u0435\u0439\u0442 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0451\u043d \u0441 \u0435\u0434\u0438\u043d\u0441\u0442\u0432\u0435\u043d\u043d\u044b\u043c \u043e\u0433\u0440\u0430\u043d\u0438\u0447\u0435\u043d\u0438\u0435\u043c \u0432\u0440\u0435\u043c\u0435\u043d\u0438 \u0436\u0438\u0437\u043d\u0438, \u0442\u043e \u043e\u043d\u043e \u0438 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f<\/li>\n<li>\u0435\u0441\u043b\u0438 \u0434\u043b\u044f \u043b\u044e\u0431\u043e\u0433\u043e \u043e\u0433\u0440\u0430\u043d\u0438\u0447\u0435\u043d\u0438\u044f \u0432\u0440\u0435\u043c\u0435\u043d\u0438 \u0436\u0438\u0437\u043d\u0438 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f <code>'static<\/code>, \u0442\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f <code>'static<\/code><\/li>\n<li>\u0435\u0441\u043b\u0438 \u0442\u0440\u0435\u0439\u0442 \u043d\u0435 \u0438\u043c\u0435\u0435\u0442 \u043e\u0433\u0440\u0430\u043d\u0438\u0447\u0435\u043d\u0438\u0439 \u0432\u0440\u0435\u043c\u0451\u043d \u0436\u0438\u0437\u043d\u0438, \u0442\u043e \u0432 \u0432\u044b\u0440\u0430\u0436\u0435\u043d\u0438\u044f\u0445 \u0435\u0433\u043e \u0432\u0440\u0435\u043c\u044f \u0436\u0438\u0437\u043d\u0438 \u0432\u044b\u0432\u043e\u0434\u0438\u0442\u0441\u044f, \u0430 \u0432\u043d\u0435 \u0432\u044b\u0440\u0430\u0436\u0435\u043d\u0438\u0439 \u0438\u043c\u0435\u0435\u0442 \u043e\u0433\u0440\u0430\u043d\u0438\u0447\u0435\u043d\u0438\u0435 <code>'static<\/code><\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<p>  <\/p>\n<p>\u0412\u0441\u0451 \u044d\u0442\u043e \u0437\u0432\u0443\u0447\u0438\u0442 \u043e\u0447\u0435\u043d\u044c \u0441\u043b\u043e\u0436\u043d\u043e, \u043d\u043e \u044d\u0442\u043e \u043c\u043e\u0436\u043d\u043e \u0432\u044b\u0440\u0430\u0437\u0438\u0442\u044c \u043a\u043e\u0440\u043e\u0442\u043a\u043e \u043a\u0430\u043a <em>\u00ab\u043e\u0433\u0440\u0430\u043d\u0438\u0447\u0435\u043d\u0438\u044f \u0432\u0440\u0435\u043c\u0435\u043d\u0438 \u0436\u0438\u0437\u043d\u0438 \u0442\u0440\u0435\u0439\u0442-\u043e\u0431\u044a\u0435\u043a\u0442\u0430 \u0432\u044b\u0432\u043e\u0434\u044f\u0442\u0441\u044f \u0438\u0437 \u043a\u043e\u043d\u0442\u0435\u043a\u0441\u0442\u0430\u00bb.<\/em> \u0418\u0437\u0443\u0447\u0438\u0432 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u043f\u0440\u0438\u043c\u0435\u0440\u043e\u0432, \u043c\u044b \u0443\u0432\u0438\u0434\u0438\u043c, \u0447\u0442\u043e \u0432\u044b\u0432\u0435\u0434\u0435\u043d\u043d\u044b\u0435 \u0432\u0440\u0435\u043c\u0435\u043d\u0430 \u0436\u0438\u0437\u043d\u0438 \u0434\u043e\u0432\u043e\u043b\u044c\u043d\u043e \u0438\u043d\u0442\u0443\u0438\u0442\u0438\u0432\u043d\u044b, \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u043d\u0430\u043c \u043d\u0435 \u043d\u0443\u0436\u043d\u043e \u0437\u0430\u043f\u043e\u043c\u0438\u043d\u0430\u0442\u044c \u0444\u043e\u0440\u043c\u0430\u043b\u044c\u043d\u044b\u0435 \u043f\u0440\u0430\u0432\u0438\u043b\u0430:<\/p>\n<p>  <\/p>\n<pre><code class=\"rust\">use std::cell::Ref;  trait Trait {}  \/\/ \u043d\u0435\u044f\u0432\u043d\u043e type T1 = Box&lt;dyn Trait&gt;; \/\/ \u0432\u044b\u0432\u0435\u0434\u0435\u043d\u043e, Box&lt;T&gt; \u043d\u0435 \u043d\u0430\u043b\u0430\u0433\u0430\u0435\u0442 \u043e\u0433\u0440\u0430\u043d\u0438\u0447\u0435\u043d\u0438\u0439 \u0432\u0440\u0435\u043c\u0451\u043d \u0436\u0438\u0437\u043d\u0438 \u043d\u0430 T, \/\/ \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u0432\u044b\u0432\u043e\u0434\u0438\u0442\u0441\u044f 'static type T2 = Box&lt;dyn Trait + 'static&gt;;  \/\/ \u043d\u0435\u044f\u0432\u043d\u043e impl dyn Trait {} \/\/ \u0432\u044b\u0432\u0435\u0434\u0435\u043d\u043e impl dyn Trait + 'static {}  \/\/ \u043d\u0435\u044f\u0432\u043d\u043e type T3&lt;'a&gt; = &amp;'a dyn Trait; \/\/ \u0432\u044b\u0432\u0435\u0434\u0435\u043d\u043e, &amp;'a T \u0442\u0440\u0435\u0431\u0443\u0435\u0442 T: 'a, \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u0432\u044b\u0432\u043e\u0434\u0438\u0442\u0441\u044f 'a type T4&lt;'a&gt; = &amp;'a (dyn Trait + 'a);  \/\/ \u043d\u0435\u044f\u0432\u043d\u043e type T5&lt;'a&gt; = Ref&lt;'a, dyn Trait&gt;; \/\/ \u0432\u044b\u0432\u0435\u0434\u0435\u043d\u043e, Ref&lt;'a, T&gt; \u0442\u0440\u0435\u0431\u0443\u0435\u0442 T: 'a, \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u0432\u044b\u0432\u043e\u0434\u0438\u0442\u0441\u044f 'a type T6&lt;'a&gt; = Ref&lt;'a, dyn Trait + 'a&gt;;  trait GenericTrait&lt;'a&gt;: 'a {}  \/\/ \u043d\u0435\u044f\u0432\u043d\u043e type T7&lt;'a&gt; = Box&lt;dyn GenericTrait&lt;'a&gt;&gt;; \/\/ \u0432\u044b\u0432\u0435\u0434\u0435\u043d\u043e type T8&lt;'a&gt; = Box&lt;dyn GenericTrait&lt;'a&gt; + 'a&gt;;  \/\/ \u043d\u0435\u044f\u0432\u043d\u043e impl&lt;'a&gt; dyn GenericTrait&lt;'a&gt; {} \/\/ \u0432\u044b\u0432\u0435\u0434\u0435\u043d\u043e impl&lt;'a&gt; dyn GenericTrait&lt;'a&gt; + 'a {}<\/code><\/pre>\n<p>  <\/p>\n<p>\u041a\u043e\u043d\u043a\u0440\u0435\u0442\u043d\u044b\u0435 \u0442\u0438\u043f\u044b, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0440\u0435\u0430\u043b\u0438\u0437\u0443\u044e\u0442 \u0442\u0440\u0435\u0439\u0442\u044b, \u043c\u043e\u0433\u0443\u0442 \u0438\u043c\u0435\u0442\u044c \u0441\u0441\u044b\u043b\u043a\u0438, \u0438, \u0442\u0430\u043a\u0438\u043c \u043e\u0431\u0440\u0430\u0437\u043e\u043c, \u0438\u043c\u0435\u0442\u044c \u043e\u0433\u0440\u0430\u043d\u0438\u0447\u0435\u043d\u0438\u044f \u0432\u0440\u0435\u043c\u0451\u043d \u0436\u0438\u0437\u043d\u0438, \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u0441\u043e\u0437\u0434\u0430\u043d\u043d\u044b\u0435 \u0438\u0437 \u043d\u0438\u0445 \u0442\u0440\u0435\u0439\u0442-\u043e\u0431\u044a\u0435\u043a\u0442\u044b \u0438\u043c\u0435\u044e\u0442 \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u044e\u0449\u0438\u0435 \u0432\u0440\u0435\u043c\u0435\u043d\u0430 \u0436\u0438\u0437\u043d\u0438. \u0422\u0430\u043a\u0436\u0435 \u0432\u044b \u043c\u043e\u0436\u0435\u0442\u0435 \u0440\u0435\u0430\u043b\u0438\u0437\u043e\u0432\u0430\u0442\u044c \u0442\u0440\u0435\u0439\u0442\u044b \u043d\u0435\u043f\u043e\u0441\u0440\u0435\u0434\u0441\u0442\u0432\u0435\u043d\u043d\u043e \u0434\u043b\u044f \u0441\u0441\u044b\u043b\u043e\u043a, \u043a\u043e\u0442\u043e\u0440\u044b\u0435, \u043e\u0447\u0435\u0432\u0438\u0434\u043d\u043e, \u0438\u043c\u0435\u044e\u0442 \u043e\u0433\u0440\u0430\u043d\u0438\u0447\u0435\u043d\u0438\u044f \u0432\u0440\u0435\u043c\u0451\u043d \u0436\u0438\u0437\u043d\u0438:<\/p>\n<p>  <\/p>\n<pre><code class=\"rust\">trait Trait {}  struct Struct {} struct Ref&lt;'a, T&gt;(&amp;'a T);  impl Trait for Struct {} impl Trait for &amp;Struct {} \/\/ \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044f \u0442\u0440\u0435\u0439\u0442\u0430 \u043d\u0430\u043f\u0440\u044f\u043c\u0443\u044e \u043d\u0430 \u0441\u0441\u044b\u043b\u043a\u0435 impl&lt;'a, T&gt; Trait for Ref&lt;'a, T&gt; {} \/\/ \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044f \u0442\u0440\u0435\u0439\u0442\u0430 \u0434\u043b\u044f \u0442\u0438\u043f\u0430, \u0441\u043e\u0434\u0435\u0440\u0436\u0430\u0449\u0435\u0433\u043e \u0441\u0441\u044b\u043b\u043a\u0443<\/code><\/pre>\n<p>  <\/p>\n<p>\u0412 \u043b\u044e\u0431\u043e\u043c \u0441\u043b\u0443\u0447\u0430\u0435, \u044d\u0442\u043e \u0441\u0442\u043e\u0438\u0442 \u043f\u043e\u0432\u0442\u043e\u0440\u0438\u0442\u044c, \u043f\u043e\u0441\u043a\u043e\u043b\u044c\u043a\u0443 \u044d\u0442\u043e \u0447\u0430\u0441\u0442\u043e \u0441\u0431\u0438\u0432\u0430\u0435\u0442 \u0441 \u0442\u043e\u043b\u043a\u0443 \u043d\u043e\u0432\u0438\u0447\u043a\u043e\u0432, \u043a\u043e\u0433\u0434\u0430 \u043e\u043d\u0438 \u043f\u0440\u0435\u043e\u0431\u0440\u0430\u0437\u0443\u044e\u0442 \u0444\u0443\u043d\u043a\u0446\u0438\u044e \u0438\u0437 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044e\u0449\u0435\u0439 \u0442\u0440\u0435\u0439\u0442-\u043e\u0431\u044a\u0435\u043a\u0442\u044b \u0432 \u043e\u0431\u043e\u0431\u0449\u0451\u043d\u043d\u0443\u044e \u0438\u043b\u0438 \u043d\u0430\u043e\u0431\u043e\u0440\u043e\u0442. \u0420\u0430\u0441\u0441\u043c\u043e\u0442\u0440\u0438\u043c \u043f\u0440\u0438\u043c\u0435\u0440:<\/p>\n<p>  <\/p>\n<pre><code class=\"rust\">use std::fmt::Display;  fn dynamic_thread_print(t: Box&lt;dyn Display + Send&gt;) {     std::thread::spawn(move || {         println!(&quot;{}&quot;, t);     }).join(); }  fn static_thread_print&lt;T: Display + Send&gt;(t: T) {     std::thread::spawn(move || {         println!(&quot;{}&quot;, t);     }).join(); }<\/code><\/pre>\n<p>  <\/p>\n<p>\u041e\u043d\u043e \u0432\u044b\u0434\u0430\u0451\u0442 \u043e\u0448\u0438\u0431\u043a\u0443 \u043a\u043e\u043c\u043f\u0438\u043b\u044f\u0446\u0438\u0438:<\/p>\n<p>  <\/p>\n<pre><code class=\"rust\">error[E0310]: the parameter type `T` may not live long enough   --&gt; src\/lib.rs:10:5    | 9  | fn static_thread_print&lt;T: Display + Send&gt;(t: T) {    |                        -- help: consider adding an explicit lifetime bound...: `T: 'static +` 10 |     std::thread::spawn(move || {    |     ^^^^^^^^^^^^^^^^^^    | note: ...so that the type `[closure@src\/lib.rs:10:24: 12:6 t:T]` will meet its required lifetime bounds   --&gt; src\/lib.rs:10:5    | 10 |     std::thread::spawn(move || {    |     ^^^^^^^^^^^^^^^^^^<\/code><\/pre>\n<p>  <\/p>\n<p>\u041e\u0442\u043b\u0438\u0447\u043d\u043e, \u043a\u043e\u043c\u043f\u0438\u043b\u044f\u0442\u043e\u0440 \u0433\u043e\u0432\u043e\u0440\u0438\u0442 \u043d\u0430\u043c, \u043a\u0430\u043a \u0440\u0435\u0448\u0438\u0442\u044c \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u0443. \u0414\u0430\u0432\u0430\u0439\u0442\u0435 \u0438\u0441\u043f\u0440\u0430\u0432\u0438\u043c \u0435\u0451.<\/p>\n<p>  <\/p>\n<pre><code class=\"rust\">use std::fmt::Display;  fn dynamic_thread_print(t: Box&lt;dyn Display + Send&gt;) {     std::thread::spawn(move || {         println!(&quot;{}&quot;, t);     }).join(); }  fn static_thread_print&lt;T: Display + Send + 'static&gt;(t: T) {     std::thread::spawn(move || {         println!(&quot;{}&quot;, t);     }).join(); }<\/code><\/pre>\n<p>  <\/p>\n<p>\u0422\u0435\u043f\u0435\u0440\u044c \u043a\u043e\u0434 \u043a\u043e\u043c\u043f\u0438\u043b\u0438\u0440\u0443\u0435\u0442\u0441\u044f, \u043d\u043e \u044d\u0442\u0438 \u0434\u0432\u0435 \u0444\u0443\u043d\u043a\u0446\u0438\u0438 \u0432 \u0441\u0440\u0430\u0432\u043d\u0435\u043d\u0438\u0438 \u0432\u044b\u0433\u043b\u044f\u0434\u044f\u0442 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u0441\u0442\u0440\u0430\u043d\u043d\u043e. \u041f\u043e\u0447\u0435\u043c\u0443 \u0432\u0442\u043e\u0440\u0430\u044f \u0444\u0443\u043d\u043a\u0446\u0438\u044f \u0442\u0440\u0435\u0431\u0443\u0435\u0442 \u043e\u0433\u0440\u0430\u043d\u0438\u0447\u0435\u043d\u0438\u0435 <code>'static<\/code> \u043d\u0430 <code>T<\/code>, \u0430 \u043f\u0435\u0440\u0432\u0430\u044f \u0444\u0443\u043d\u043a\u0446\u0438\u044f \u2014 \u043d\u0435\u0442? \u042d\u0442\u043e \u0432\u043e\u043f\u0440\u043e\u0441 \u0441 \u043f\u043e\u0434\u0432\u043e\u0445\u043e\u043c. \u0418\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044f \u043f\u0440\u0430\u0432\u0438\u043b\u0430 \u0432\u044b\u0432\u043e\u0434\u0430 \u0432\u0440\u0435\u043c\u0451\u043d \u0436\u0438\u0437\u043d\u0438, Rust \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0438 \u0432\u044b\u0432\u043e\u0434\u0438\u0442 \u043e\u0433\u0440\u0430\u043d\u0438\u0447\u0435\u043d\u0438\u0435 <code>'static<\/code> \u0432 \u043f\u0435\u0440\u0432\u043e\u0439 \u0444\u0443\u043d\u043a\u0446\u0438\u0438, \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u0443 \u043d\u0438\u0445 \u043e\u0431\u0435\u0438\u0445 \u0444\u0430\u043a\u0442\u0438\u0447\u0435\u0441\u043a\u0438 \u0435\u0441\u0442\u044c \u043e\u0433\u0440\u0430\u043d\u0438\u0447\u0435\u043d\u0438\u0435 <code>'static<\/code>. \u0412\u043e\u0442 \u0447\u0442\u043e \u0432\u0438\u0434\u0438\u0442 \u043a\u043e\u043c\u043f\u0438\u043b\u044f\u0442\u043e\u0440 Rust:<\/p>\n<p>  <\/p>\n<pre><code class=\"rust\">use std::fmt::Display;  fn dynamic_thread_print(t: Box&lt;dyn Display + Send + 'static&gt;) {     std::thread::spawn(move || {         println!(&quot;{}&quot;, t);     }).join(); }  fn static_thread_print&lt;T: Display + Send + 'static&gt;(t: T) {     std::thread::spawn(move || {         println!(&quot;{}&quot;, t);     }).join(); }<\/code><\/pre>\n<p>  <\/p>\n<p><strong>\u041a\u043b\u044e\u0447\u0435\u0432\u044b\u0435 \u0432\u044b\u0432\u043e\u0434\u044b<\/strong><\/p>\n<p>  <\/p>\n<ul>\n<li>\u0432\u0441\u0435 \u0442\u0440\u0435\u0439\u0442-\u043e\u0431\u044a\u0435\u043a\u0442\u044b \u0438\u043c\u0435\u044e\u0442 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u043d\u044b\u0435 \u0432\u044b\u0432\u0435\u0434\u0435\u043d\u043d\u044b\u0435 \u043e\u0433\u0440\u0430\u043d\u0438\u0447\u0435\u043d\u0438\u044f \u0432\u0440\u0435\u043c\u0451\u043d \u0436\u0438\u0437\u043d\u0438 \u043f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e<\/li>\n<\/ul>\n<p>  <\/p>\n<h3 id=\"anchor7-compiler-error-messages-will-tell-me-how-to-fix-my-programanchor-7-soobscheniya-ob-oshibkah-kompilyacii-skazhut-mne-kak-ispravit-moyu-programmu\"><a name=\"7-compiler-error-messages-will-tell-me-how-to-fix-my-program\"><\/a> 7) \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u044f \u043e\u0431 \u043e\u0448\u0438\u0431\u043a\u0430\u0445 \u043a\u043e\u043c\u043f\u0438\u043b\u044f\u0446\u0438\u0438 \u0441\u043a\u0430\u0436\u0443\u0442 \u043c\u043d\u0435, \u043a\u0430\u043a \u0438\u0441\u043f\u0440\u0430\u0432\u0438\u0442\u044c \u043c\u043e\u044e \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0443<\/h3>\n<p>  <\/p>\n<p><strong>\u041e\u0448\u0438\u0431\u043e\u0447\u043d\u044b\u0435 \u0432\u044b\u0432\u043e\u0434\u044b<\/strong><\/p>\n<p>  <\/p>\n<ul>\n<li>\u043f\u0440\u0430\u0432\u0438\u043b\u0430 \u0432\u044b\u0432\u043e\u0434\u0430 \u0432\u0440\u0435\u043c\u0451\u043d \u0436\u0438\u0437\u043d\u0438 \u0434\u043b\u044f \u0442\u0440\u0435\u0439\u0442-\u043e\u0431\u044a\u0435\u043a\u0442\u043e\u0432 \u0432\u0441\u0435\u0433\u0434\u0430 \u0432\u0435\u0440\u043d\u044b<\/li>\n<li>Rust \u0437\u043d\u0430\u0435\u0442 \u043e \u0441\u0435\u043c\u0430\u043d\u0442\u0438\u043a\u0435 \u043c\u043e\u0435\u0439 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u044b \u0431\u043e\u043b\u044c\u0448\u0435 \u043c\u0435\u043d\u044f<\/li>\n<\/ul>\n<p>  <\/p>\n<p>\u0414\u0430\u043d\u043d\u043e\u0435 \u0437\u0430\u0431\u043b\u0443\u0436\u0434\u0435\u043d\u0438\u0435 \u2014 \u044d\u0442\u043e \u043f\u0440\u0435\u0434\u044b\u0434\u0443\u0449\u0438\u0435 \u0434\u0432\u0430, \u043e\u0431\u044a\u0435\u0434\u0438\u043d\u0451\u043d\u043d\u044b\u0435 \u0432 \u043e\u0434\u0438\u043d \u043f\u0440\u0438\u043c\u0435\u0440:<\/p>\n<p>  <\/p>\n<pre><code class=\"rust\">use std::fmt::Display;  fn box_displayable&lt;T: Display&gt;(t: T) -&gt; Box&lt;dyn Display&gt; {     Box::new(t) }<\/code><\/pre>\n<p>  <\/p>\n<p>\u042d\u0442\u0430 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0430 \u0432\u044b\u0434\u0430\u0451\u0442 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0443\u044e \u043e\u0448\u0438\u0431\u043a\u0443:<\/p>\n<p>  <\/p>\n<pre><code class=\"rust\">error[E0310]: the parameter type `T` may not live long enough  --&gt; src\/lib.rs:4:5   | 3 | fn box_displayable&lt;T: Display&gt;(t: T) -&gt; Box&lt;dyn Display&gt; {   |                    -- help: consider adding an explicit lifetime bound...: `T: 'static +` 4 |     Box::new(t)   |     ^^^^^^^^^^^   | note: ...so that the type `T` will meet its required lifetime bounds  --&gt; src\/lib.rs:4:5   | 4 |     Box::new(t)   |     ^^^^^^^^^^^<\/code><\/pre>\n<p>  <\/p>\n<p>\u0425\u043e\u0440\u043e\u0448\u043e, \u0434\u0430\u0432\u0430\u0439\u0442\u0435 \u0438\u0441\u043f\u0440\u0430\u0432\u0438\u043c \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u0443 \u0442\u0430\u043a, \u043a\u0430\u043a \u0433\u043e\u0432\u043e\u0440\u0438\u0442 \u043d\u0430\u043c \u043a\u043e\u043c\u043f\u0438\u043b\u044f\u0442\u043e\u0440. \u041d\u0435 \u0431\u0443\u0434\u0435\u043c \u043e\u0431\u0440\u0430\u0449\u0430\u0442\u044c \u0432\u043d\u0438\u043c\u0430\u043d\u0438\u0435 \u043d\u0430 \u0442\u043e\u0442 \u0444\u0430\u043a\u0442, \u0447\u0442\u043e \u043e\u043d, \u043d\u0435 \u0433\u043e\u0432\u043e\u0440\u044f \u043d\u0430\u043c, \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0438 \u0432\u044b\u0432\u043e\u0434\u0438\u0442 \u0434\u043b\u044f \u043d\u0430\u0448\u0435\u0433\u043e \u0442\u0440\u0435\u0439\u0442-\u043e\u0431\u044a\u0435\u043a\u0442\u0430 \u043e\u0433\u0440\u0430\u043d\u0438\u0447\u0435\u043d\u0438\u0435 \u0432\u0440\u0435\u043c\u0435\u043d\u0438 \u0436\u0438\u0437\u043d\u0438 <code>'static<\/code> \u0438 \u0447\u0442\u043e \u0435\u0433\u043e \u0440\u0435\u043a\u043e\u043c\u0435\u043d\u0434\u0443\u0435\u043c\u043e\u0435 \u0438\u0441\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u0435 \u043e\u0441\u043d\u043e\u0432\u0430\u043d\u043e \u043d\u0430 \u044d\u0442\u043e\u043c \u043f\u0440\u0435\u0434\u043f\u043e\u043b\u043e\u0436\u0435\u043d\u0438\u0438:<\/p>\n<p>  <\/p>\n<pre><code class=\"rust\">use std::fmt::Display;  fn box_displayable&lt;T: Display + 'static&gt;(t: T) -&gt; Box&lt;dyn Display&gt; {     Box::new(t) }<\/code><\/pre>\n<p>  <\/p>\n<p>\u0418\u0442\u0430\u043a, \u0442\u0435\u043f\u0435\u0440\u044c \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0430 \u043a\u043e\u043c\u043f\u0438\u043b\u0438\u0440\u0443\u0435\u0442\u0441\u044f\u2026 \u041d\u043e \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u043b\u0438 \u044d\u0442\u043e \u0442\u043e, \u0447\u0435\u0433\u043e \u043c\u044b \u0445\u043e\u0442\u0438\u043c? \u0412\u043e\u0437\u043c\u043e\u0436\u043d\u043e, \u0434\u0430, \u043d\u043e \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e, \u0447\u0442\u043e \u0438 \u043d\u0435\u0442. \u041a\u043e\u043c\u043f\u0438\u043b\u044f\u0442\u043e\u0440 \u043d\u0435 \u043f\u0440\u0435\u0434\u043b\u043e\u0436\u0438\u043b \u043d\u0438\u043a\u0430\u043a\u0438\u0445 \u0434\u0440\u0443\u0433\u0438\u0445 \u0438\u0441\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u0439, \u043d\u043e \u044d\u0442\u043e\u0442 \u0432\u0430\u0440\u0438\u0430\u043d\u0442 \u0442\u0430\u043a\u0436\u0435 \u043f\u0440\u0438\u043c\u0435\u043d\u0438\u043c:<\/p>\n<p>  <\/p>\n<pre><code class=\"rust\">use std::fmt::Display;  fn box_displayable&lt;'a, T: Display + 'a&gt;(t: T) -&gt; Box&lt;dyn Display + 'a&gt; {     Box::new(t) }<\/code><\/pre>\n<p>  <\/p>\n<p>\u042d\u0442\u0430 \u0444\u0443\u043d\u043a\u0446\u0438\u044f \u043f\u0440\u0438\u043d\u0438\u043c\u0430\u0435\u0442 \u0432\u0441\u0435 \u0442\u0435 \u0436\u0435 \u0430\u0440\u0433\u0443\u043c\u0435\u043d\u0442\u044b, \u0447\u0442\u043e \u0438 \u0432 \u043f\u0440\u0435\u0434\u044b\u0434\u0443\u0449\u0430\u044f \u0432\u0435\u0440\u0441\u0438\u0438, \u0438 \u0434\u0430\u0436\u0435 \u0441\u0432\u0435\u0440\u0445 \u044d\u0442\u043e\u0433\u043e! \u0414\u0435\u043b\u0430\u0435\u0442 \u043b\u0438 \u044d\u0442\u043e \u0435\u0451 \u043b\u0443\u0447\u0448\u0435? \u041d\u0435\u043e\u0431\u044f\u0437\u0430\u0442\u0435\u043b\u044c\u043d\u043e, \u044d\u0442\u043e \u0437\u0430\u0432\u0438\u0441\u0438\u0442 \u043e\u0442 \u0442\u0440\u0435\u0431\u043e\u0432\u0430\u043d\u0438\u0439 \u043a \u043d\u0430\u0448\u0435\u0439 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0435. \u0414\u0430\u043d\u043d\u044b\u0439 \u043f\u0440\u0438\u043c\u0435\u0440 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u0430\u0431\u0441\u0442\u0440\u0430\u043a\u0442\u043d\u044b\u0439, \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u0434\u0430\u0432\u0430\u0439\u0442\u0435 \u0440\u0430\u0441\u0441\u043c\u043e\u0442\u0440\u0438\u043c \u0431\u043e\u043b\u0435\u0435 \u043f\u0440\u043e\u0441\u0442\u043e\u0439 \u0438 \u043e\u0447\u0435\u0432\u0438\u0434\u043d\u044b\u0439 \u0441\u043b\u0443\u0447\u0430\u0439:<\/p>\n<p>  <\/p>\n<pre><code class=\"rust\">fn return_first(a: &amp;str, b: &amp;str) -&gt; &amp;str {     a }<\/code><\/pre>\n<p>  <\/p>\n<p>\u0412\u044b\u0434\u0430\u0451\u0442 \u043e\u0448\u0438\u0431\u043a\u0443:<\/p>\n<p>  <\/p>\n<pre><code class=\"rust\">error[E0106]: missing lifetime specifier  --&gt; src\/lib.rs:1:38   | 1 | fn return_first(a: &amp;str, b: &amp;str) -&gt; &amp;str {   |                    ----     ----     ^ expected named lifetime parameter   |   = help: this function's return type contains a borrowed value, but the signature does not say whether it is borrowed from `a` or `b` help: consider introducing a named lifetime parameter   | 1 | fn return_first&lt;'a&gt;(a: &amp;'a str, b: &amp;'a str) -&gt; &amp;'a str {   |                ^^^^    ^^^^^^^     ^^^^^^^     ^^^<\/code><\/pre>\n<p>  <\/p>\n<p>\u0421\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u0435 \u043e\u0431 \u043e\u0448\u0438\u0431\u043a\u0435 \u0440\u0435\u043a\u043e\u043c\u0435\u043d\u0434\u0443\u0435\u0442 \u0430\u043d\u043d\u043e\u0442\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u043e\u0431\u0430 \u0430\u0440\u0433\u0443\u043c\u0435\u043d\u0442\u0430 \u0438 \u0432\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u043c\u043e\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u043e\u0434\u0438\u043d\u0430\u043a\u043e\u0432\u044b\u043c \u0432\u0440\u0435\u043c\u0435\u043d\u0435\u043c \u0436\u0438\u0437\u043d\u0438. \u0415\u0441\u043b\u0438 \u0431\u044b \u043c\u044b \u0442\u0430\u043a \u0441\u0434\u0435\u043b\u0430\u043b\u0438, \u043d\u0430\u0448\u0430 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0430 \u0431\u044b \u0441\u043a\u043e\u043c\u043f\u0438\u043b\u0438\u0440\u043e\u0432\u0430\u043b\u0430\u0441\u044c, \u043d\u043e \u044d\u0442\u0430 \u0444\u0443\u043d\u043a\u0446\u0438\u044f \u0447\u0440\u0435\u0437\u043c\u0435\u0440\u043d\u043e \u043e\u0433\u0440\u0430\u043d\u0438\u0447\u0438\u043b\u0430 \u0431\u044b \u0442\u0438\u043f \u0432\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u043c\u043e\u0433\u043e \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f. \u041d\u0430 \u0441\u0430\u043c\u043e\u043c \u0434\u0435\u043b\u0435 \u043c\u044b \u0445\u043e\u0442\u0438\u043c \u044d\u0442\u043e\u0433\u043e:<\/p>\n<p>  <\/p>\n<pre><code class=\"rust\">fn return_first&lt;'a&gt;(a: &amp;'a str, b: &amp;str) -&gt; &amp;'a str {     a }<\/code><\/pre>\n<p>  <\/p>\n<p><strong>\u041a\u043b\u044e\u0447\u0435\u0432\u044b\u0435 \u0432\u044b\u0432\u043e\u0434\u044b<\/strong><\/p>\n<p>  <\/p>\n<ul>\n<li>\u043f\u0440\u0430\u0432\u0438\u043b\u0430 \u0432\u044b\u0432\u043e\u0434\u0430 \u0432\u0440\u0435\u043c\u0435\u043d\u0438 \u0436\u0438\u0437\u043d\u0438 \u0434\u043b\u044f \u0442\u0440\u0435\u0439\u0442-\u043e\u0431\u044a\u0435\u043a\u0442\u043e\u0432 \u043f\u043e\u0434\u0445\u043e\u0434\u044f\u0442 \u043d\u0435 \u043a \u043b\u044e\u0431\u043e\u0439 \u0441\u0438\u0442\u0443\u0430\u0446\u0438\u0438<\/li>\n<li>Rust \u043d\u0435 \u0437\u043d\u0430\u0435\u0442 \u043e \u0441\u0435\u043c\u0430\u043d\u0442\u0438\u043a\u0435 \u0432\u0430\u0448\u0435\u0439 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u044b \u0431\u043e\u043b\u044c\u0448\u0435, \u0447\u0435\u043c \u0432\u044b<\/li>\n<li>\u0421\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u044f \u043e\u0431 \u043e\u0448\u0438\u0431\u043a\u0430\u0445 \u043a\u043e\u043c\u043f\u0438\u043b\u044f\u0446\u0438\u0438 Rust \u043f\u0440\u0435\u0434\u043b\u0430\u0433\u0430\u044e\u0442 \u0438\u0441\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u044f, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043f\u0440\u0438\u0432\u0435\u0434\u0443\u0442 \u043a \u0443\u0441\u043f\u0435\u0448\u043d\u043e\u0439 \u043a\u043e\u043c\u043f\u0438\u043b\u044f\u0446\u0438\u0438 \u0432\u0430\u0448\u0435\u0439 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u044b, \u043d\u043e \u044d\u0442\u043e \u043d\u0435 \u0442\u043e \u0436\u0435 \u0441\u0430\u043c\u043e\u0435, \u0447\u0442\u043e \u0438 \u0438\u0441\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u044f, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0437\u0430\u0441\u0442\u0430\u0432\u044f\u0442 \u0432\u0430\u0448\u0443 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0443 \u0443\u0441\u043f\u0435\u0448\u043d\u043e \u043a\u043e\u043c\u043f\u0438\u043b\u0438\u0440\u043e\u0432\u0430\u0442\u044c\u0441\u044f <em>\u0438 \u043e\u0434\u043d\u043e\u0432\u0440\u0435\u043c\u0435\u043d\u043d\u043e<\/em> \u043d\u0430\u0438\u043b\u0443\u0447\u0448\u0438\u043c \u043e\u0431\u0440\u0430\u0437\u043e\u043c \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u044e\u0442 \u0442\u0440\u0435\u0431\u043e\u0432\u0430\u043d\u0438\u044f\u043c \u0432\u0430\u0448\u0435\u0439 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u044b.<\/li>\n<\/ul>\n<p>  <\/p>\n<h3 id=\"anchor8-lifetimes-can-grow-and-shrink-at-run-timeanchor-8-vremya-zhizni-mozhet-rasti-i-sokraschatsya-vo-vremya-ispolneniya\"><a name=\"8-lifetimes-can-grow-and-shrink-at-run-time\"><\/a> 8) \u0432\u0440\u0435\u043c\u044f \u0436\u0438\u0437\u043d\u0438 \u043c\u043e\u0436\u0435\u0442 \u0440\u0430\u0441\u0442\u0438 \u0438 \u0441\u043e\u043a\u0440\u0430\u0449\u0430\u0442\u044c\u0441\u044f \u0432\u043e \u0432\u0440\u0435\u043c\u044f \u0438\u0441\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f<\/h3>\n<p>  <\/p>\n<p><strong>\u041e\u0448\u0438\u0431\u043e\u0447\u043d\u044b\u0435 \u0432\u044b\u0432\u043e\u0434\u044b<\/strong><\/p>\n<p>  <\/p>\n<ul>\n<li>\u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440\u043d\u044b\u0435 \u0442\u0438\u043f\u044b \u043c\u043e\u0433\u0443\u0442 \u043c\u0435\u043d\u044f\u0442\u044c \u0441\u0441\u044b\u043b\u043a\u0438 \u0432\u043e \u0432\u0440\u0435\u043c\u044f \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f, \u0447\u0442\u043e\u0431\u044b \u0438\u0437\u043c\u0435\u043d\u044f\u0442\u044c \u0438\u0445 \u0432\u0440\u0435\u043c\u0435\u043d\u0430 \u0436\u0438\u0437\u043d\u0438<\/li>\n<li>\u0430\u043d\u0430\u043b\u0438\u0437\u0430\u0442\u043e\u0440 \u0437\u0430\u0438\u043c\u0441\u0442\u0432\u043e\u0432\u0430\u043d\u0438\u0439 Rust \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442 \u043f\u0440\u043e\u0434\u0432\u0438\u043d\u0443\u0442\u044b\u0439 \u0430\u043d\u0430\u043b\u0438\u0437 \u043f\u043e\u0442\u043e\u043a\u0430 \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u044f<\/li>\n<\/ul>\n<p>  <\/p>\n<p>\u042d\u0442\u043e\u0442 \u043a\u043e\u0434 \u043d\u0435 \u043a\u043e\u043c\u043f\u0438\u043b\u0438\u0440\u0443\u0435\u0442\u0441\u044f:<\/p>\n<p>  <\/p>\n<pre><code class=\"rust\">struct Has&lt;'lifetime&gt; {     lifetime: &amp;'lifetime str, }  fn main() {     let long = String::from(&quot;long&quot;);     let mut has = Has { lifetime: &amp;long };     assert_eq!(has.lifetime, &quot;long&quot;);      {         let short = String::from(&quot;short&quot;);         \/\/ &quot;\u043f\u0435\u0440\u0435\u043a\u043b\u044e\u0447\u0438\u0442\u044c\u0441\u044f&quot; \u043d\u0430 \u0431\u043e\u043b\u0435\u0435 \u043a\u043e\u0440\u043e\u0442\u043a\u043e\u0435 \u0432\u0440\u0435\u043c\u044f \u0436\u0438\u0437\u043d\u0438         has.lifetime = &amp;short;         assert_eq!(has.lifetime, &quot;short&quot;);          \/\/ &quot;\u043f\u0435\u0440\u0435\u043a\u043b\u044e\u0447\u0438\u0442\u044c\u0441\u044f \u043e\u0431\u0440\u0430\u0442\u043d\u043e&quot; \u043d\u0430 \u0431\u043e\u043b\u0435\u0435 \u0434\u043b\u0438\u043d\u043d\u043e\u0435 \u0432\u0440\u0435\u043c\u044f \u0436\u0438\u0437\u043d\u0438 (\u043d\u0430 \u0441\u0430\u043c\u043e\u043c \u0434\u0435\u043b\u0435 \u043d\u0435\u0442)         has.lifetime = &amp;long;         assert_eq!(has.lifetime, &quot;long&quot;);         \/\/ \u0437\u0434\u0435\u0441\u044c `short` \u0443\u0434\u0430\u043b\u044f\u0435\u0442\u0441\u044f     }      \/\/ \u043e\u0448\u0438\u0431\u043a\u0430 \u043a\u043e\u043c\u043f\u0438\u043b\u044f\u0446\u0438\u0438, `short` \u0432\u0441\u0435 \u0435\u0449\u0451 &quot;\u0437\u0430\u0438\u043c\u0441\u0442\u0432\u043e\u0432\u0430\u043d\u043e&quot; \u043f\u043e\u0441\u043b\u0435 \u0443\u0434\u0430\u043b\u0435\u043d\u0438\u044f     assert_eq!(has.lifetime, &quot;long&quot;); }<\/code><\/pre>\n<p>  <\/p>\n<p>\u041e\u043d \u0432\u044b\u0434\u0430\u0451\u0442 \u043e\u0448\u0438\u0431\u043a\u0443:<\/p>\n<p>  <\/p>\n<pre><code class=\"rust\">error[E0597]: `short` does not live long enough   --&gt; src\/main.rs:11:24    | 11 |         has.lifetime = &amp;short;    |                        ^^^^^^ borrowed value does not live long enough ... 15 |     }    |     - `short` dropped here while still borrowed 16 |     assert_eq!(has.lifetime, &quot;long&quot;);    |     --------------------------------- borrow later used here<\/code><\/pre>\n<p>  <\/p>\n<p>\u042d\u0442\u043e\u0442 \u043a\u043e\u0434 \u0442\u0430\u043a\u0436\u0435 \u043d\u0435 \u043a\u043e\u043c\u043f\u0438\u043b\u0438\u0440\u0443\u0435\u0442\u0441\u044f \u0438 \u0432\u044b\u0434\u0430\u0435\u0442 \u0442\u0443 \u0436\u0435 \u043e\u0448\u0438\u0431\u043a\u0443, \u0447\u0442\u043e \u0438 \u043f\u0440\u0438\u043c\u0435\u0440 \u0432\u044b\u0448\u0435:<\/p>\n<p>  <\/p>\n<pre><code class=\"rust\">struct Has&lt;'lifetime&gt; {     lifetime: &amp;'lifetime str, }  fn main() {     let long = String::from(&quot;long&quot;);     let mut has = Has { lifetime: &amp;long };     assert_eq!(has.lifetime, &quot;long&quot;);      \/\/ \u044d\u0442\u043e\u0442 \u0431\u043b\u043e\u043a \u043d\u0438\u043a\u043e\u0433\u0434\u0430 \u043d\u0435 \u0431\u0443\u0434\u0435\u0442 \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d     if false {         let short = String::from(&quot;short&quot;);         \/\/ &quot;\u043f\u0435\u0440\u0435\u043a\u043b\u044e\u0447\u0438\u0442\u044c\u0441\u044f&quot; \u043d\u0430 \u0431\u043e\u043b\u0435\u0435 \u043a\u043e\u0440\u043e\u0442\u043a\u043e\u0435 \u0432\u0440\u0435\u043c\u044f \u0436\u0438\u0437\u043d\u0438         has.lifetime = &amp;short;         assert_eq!(has.lifetime, &quot;short&quot;);          \/\/ &quot;\u043f\u0435\u0440\u0435\u043a\u043b\u044e\u0447\u0438\u0442\u0441\u044f \u043e\u0431\u0440\u0430\u0442\u043d\u043e&quot; \u043d\u0430 \u0431\u043e\u043b\u0435\u0435 \u0434\u043b\u0438\u043d\u043d\u043e\u0435 \u0432\u0440\u0435\u043c\u044f \u0436\u0438\u0437\u043d\u0438 (\u043d\u0430 \u0441\u0430\u043c\u043e\u043c \u0434\u0435\u043b\u0435 \u043d\u0435\u0442)         has.lifetime = &amp;long;         assert_eq!(has.lifetime, &quot;long&quot;);         \/\/ \u0437\u0434\u0435\u0441\u044c `short` \u0443\u0434\u0430\u043b\u044f\u0435\u0442\u0441\u044f     }      \/\/ \u0432\u0441\u0435 \u0435\u0449\u0451 \u043e\u0448\u0438\u0431\u043a\u0430 \u043a\u043e\u043c\u043f\u0438\u043b\u044f\u0446\u0438\u0438, `short` \u0432\u0441\u0435 \u0435\u0449\u0451 &quot;\u0437\u0430\u0438\u043c\u0441\u0442\u0432\u043e\u0432\u0430\u043d\u043e&quot; \u043f\u043e\u0441\u043b\u0435 \u0443\u0434\u0430\u043b\u0435\u043d\u0438\u044f     assert_eq!(has.lifetime, &quot;long&quot;); }<\/code><\/pre>\n<p>  <\/p>\n<p>\u0412\u0440\u0435\u043c\u0435\u043d\u0430 \u0436\u0438\u0437\u043d\u0438 \u0434\u043e\u043b\u0436\u043d\u044b \u0431\u044b\u0442\u044c \u0441\u0442\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0438 \u043f\u0440\u043e\u0432\u0435\u0440\u0435\u043d\u044b \u0432\u043e \u0432\u0440\u0435\u043c\u044f \u043a\u043e\u043c\u043f\u0438\u043b\u044f\u0446\u0438\u0438, \u0438 \u0430\u043d\u0430\u043b\u0438\u0437\u0430\u0442\u043e\u0440 \u0437\u0430\u0438\u043c\u0441\u0442\u0432\u043e\u0432\u0430\u043d\u0438\u0439 \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u0435\u0442 \u0442\u043e\u043b\u044c\u043a\u043e \u043e\u0447\u0435\u043d\u044c \u043e\u0433\u0440\u0430\u043d\u0438\u0447\u0435\u043d\u043d\u044b\u0439 \u0430\u043d\u0430\u043b\u0438\u0437 \u043f\u043e\u0442\u043e\u043a\u0430 \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u044f, \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u043e\u043d \u043f\u0440\u0435\u0434\u043f\u043e\u043b\u0430\u0433\u0430\u0435\u0442, \u0447\u0442\u043e \u043a\u0430\u0436\u0434\u044b\u0439 \u0431\u043b\u043e\u043a \u0432 \u043e\u043f\u0435\u0440\u0430\u0442\u043e\u0440\u0435 <code>if-else<\/code> \u0438 \u043a\u0430\u0436\u0434\u0430\u044f \u0432\u0435\u0442\u0432\u044c \u0432\u044b\u0440\u0430\u0436\u0435\u043d\u0438\u044f <code>match<\/code> \u043c\u043e\u0433\u0443\u0442 \u0431\u044b\u0442\u044c \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u044b, \u0430 \u0437\u0430\u0442\u0435\u043c \u0432\u044b\u0431\u0438\u0440\u0430\u0435\u0442 \u0441\u0430\u043c\u043e\u0435 \u043a\u043e\u0440\u043e\u0442\u043a\u043e\u0435 \u0438\u0437 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u044b\u0445 \u0432\u0440\u0435\u043c\u0451\u043d \u0436\u0438\u0437\u043d\u0438 \u0434\u043b\u044f \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u043e\u0439. \u041a\u0430\u043a \u0442\u043e\u043b\u044c\u043a\u043e \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u0430\u044f \u043e\u0433\u0440\u0430\u043d\u0438\u0447\u0435\u043d\u0430 \u0432\u0440\u0435\u043c\u0435\u043d\u0435\u043c \u0436\u0438\u0437\u043d\u0438, \u043e\u043d\u0430 \u043e\u0433\u0440\u0430\u043d\u0438\u0447\u0435\u043d\u0430 \u044d\u0442\u0438\u043c \u0432\u0440\u0435\u043c\u0435\u043d\u0435\u043c \u0436\u0438\u0437\u043d\u0438 <em>\u043d\u0430\u0432\u0441\u0435\u0433\u0434\u0430<\/em>. \u0412\u0440\u0435\u043c\u044f \u0436\u0438\u0437\u043d\u0438 \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u043e\u0439 \u043c\u043e\u0436\u0435\u0442 \u0442\u043e\u043b\u044c\u043a\u043e \u0441\u043e\u043a\u0440\u0430\u0449\u0430\u0442\u044c\u0441\u044f, \u0438 \u044d\u0442\u043e \u0441\u043e\u043a\u0440\u0430\u0449\u0435\u043d\u0438\u0435 \u043f\u043e\u043b\u043d\u043e\u0441\u0442\u044c\u044e \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u044f\u0435\u0442\u0441\u044f \u043d\u0430 \u044d\u0442\u0430\u043f\u0435 \u043a\u043e\u043c\u043f\u0438\u043b\u044f\u0446\u0438\u0438.<\/p>\n<p>  <\/p>\n<p><strong>\u041a\u043b\u044e\u0447\u0435\u0432\u044b\u0435 \u0432\u044b\u0432\u043e\u0434\u044b<\/strong><\/p>\n<p>  <\/p>\n<ul>\n<li>\u0432\u0440\u0435\u043c\u0435\u043d\u0430 \u0436\u0438\u0437\u043d\u0438 \u043f\u0440\u043e\u0432\u0435\u0440\u044f\u0435\u0442\u0441\u044f \u0441\u0442\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0438 \u043d\u0430 \u044d\u0442\u0430\u043f\u0435 \u043a\u043e\u043c\u043f\u0438\u043b\u044f\u0446\u0438\u0438<\/li>\n<li>\u0432\u0440\u0435\u043c\u0435\u043d\u0430 \u0436\u0438\u0437\u043d\u0438 \u043d\u0435 \u043c\u043e\u0433\u0443\u0442 \u0440\u0430\u0441\u0442\u0438, \u0443\u043c\u0435\u043d\u044c\u0448\u0430\u0442\u044c\u0441\u044f \u0438\u043b\u0438 \u043a\u0430\u043a-\u0442\u043e \u0438\u0437\u043c\u0435\u043d\u044f\u0442\u044c\u0441\u044f \u0432\u043e \u0432\u0440\u0435\u043c\u044f \u0438\u0441\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f<\/li>\n<li>\u043a\u043e\u043c\u043f\u0438\u043b\u044f\u0442\u043e\u0440 Rust \u0432\u0441\u0435\u0433\u0434\u0430 \u0432\u044b\u0431\u0438\u0440\u0430\u0435\u0442 \u043d\u0430\u0438\u043c\u0435\u043d\u044c\u0448\u0435\u0435 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0435 \u0432\u0440\u0435\u043c\u044f \u0436\u0438\u0437\u043d\u0438 \u0434\u043b\u044f \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u043e\u0439, \u043f\u0440\u0435\u0434\u043f\u043e\u043b\u0430\u0433\u0430\u044f, \u0447\u0442\u043e \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u044b \u0432\u0441\u0435 \u043f\u0443\u0442\u0438 \u0438\u0441\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f \u043a\u043e\u0434\u0430<\/li>\n<\/ul>\n<p>  <\/p>\n<h3 id=\"anchor9-downgrading-mut-refs-to-shared-refs-is-safeanchor-9-oslablenie-mut-ssylok-do-razdelyaemyh-bezopasno\"><a name=\"9-downgrading-mut-refs-to-shared-refs-is-safe\"><\/a> 9) \u043e\u0441\u043b\u0430\u0431\u043b\u0435\u043d\u0438\u0435 mut-\u0441\u0441\u044b\u043b\u043e\u043a \u0434\u043e \u0440\u0430\u0437\u0434\u0435\u043b\u044f\u0435\u043c\u044b\u0445 \u0431\u0435\u0437\u043e\u043f\u0430\u0441\u043d\u043e<\/h3>\n<p>  <\/p>\n<p><strong>\u041e\u0448\u0438\u0431\u043e\u0447\u043d\u044b\u0435 \u0432\u044b\u0432\u043e\u0434\u044b<\/strong><\/p>\n<p>  <\/p>\n<ul>\n<li>\u043f\u0435\u0440\u0435\u0437\u0430\u0438\u043c\u0441\u0442\u0432\u043e\u0432\u0430\u043d\u0438\u0435 (re-borrowing) \u0441\u0441\u044b\u043b\u043a\u0438 \u0437\u0430\u043a\u0430\u043d\u0447\u0438\u0432\u0430\u0435\u0442 \u0435\u0451 \u0432\u0440\u0435\u043c\u044f \u0436\u0438\u0437\u043d\u0438 \u0438 \u043d\u0430\u0447\u0438\u043d\u0430\u0435\u0442 \u043d\u043e\u0432\u043e\u0435<\/li>\n<\/ul>\n<p>  <\/p>\n<p>\u0412\u044b \u043c\u043e\u0436\u0435\u0442\u0435 \u043f\u0435\u0440\u0435\u0434\u0430\u0442\u044c mut-\u0441\u0441\u044b\u043b\u043a\u0443 \u0432 \u0444\u0443\u043d\u043a\u0446\u0438\u044e, \u043e\u0436\u0438\u0434\u0430\u044e\u0449\u0443\u044e \u0440\u0430\u0437\u0434\u0435\u043b\u044f\u0435\u043c\u0443\u044e \u0441\u0441\u044b\u043b\u043a\u0443, \u043f\u043e\u0442\u043e\u043c\u0443 \u0447\u0442\u043e Rust \u043d\u0435\u044f\u0432\u043d\u043e \u043f\u0435\u0440\u0435\u0437\u0430\u0438\u043c\u0441\u0442\u0432\u0443\u0435\u0442 mut-\u0441\u0441\u044b\u043b\u043a\u0443 \u043a\u0430\u043a \u043d\u0435\u0438\u0437\u043c\u0435\u043d\u044f\u0435\u043c\u0443\u044e:<\/p>\n<p>  <\/p>\n<pre><code class=\"rust\">fn takes_shared_ref(n: &amp;i32) {}  fn main() {     let mut a = 10;     takes_shared_ref(&amp;mut a); \/\/ \u043a\u043e\u043c\u043f\u0438\u043b\u0438\u0440\u0443\u0435\u0442\u0441\u044f     takes_shared_ref(&amp;*(&amp;mut a)); \/\/ \u0440\u0430\u0441\u0441\u0430\u0445\u0430\u0440\u0435\u043d\u043d\u0430\u044f \u0441\u0442\u0440\u043e\u043a\u0430 \u0432\u044b\u0448\u0435 }<\/code><\/pre>\n<p>  <\/p>\n<p>\u0418\u043d\u0442\u0443\u0438\u0442\u0438\u0432\u043d\u043e \u044d\u0442\u043e \u043f\u043e\u043d\u044f\u0442\u043d\u043e, \u043f\u043e\u0441\u043a\u043e\u043b\u044c\u043a\u0443 \u0432 \u043f\u043e\u0432\u0442\u043e\u0440\u043d\u043e\u043c \u0437\u0430\u0438\u043c\u0441\u0442\u0432\u043e\u0432\u0430\u043d\u0438\u0438 mut-\u0441\u0441\u044b\u043b\u043a\u0438 \u043a\u0430\u043a \u0438\u043c\u043c\u0443\u0442\u0430\u0431\u0435\u043b\u044c\u043d\u043e\u0439 \u043d\u0435\u0442 \u043d\u0438\u0447\u0435\u0433\u043e \u0441\u0442\u0440\u0430\u0448\u043d\u043e\u0433\u043e, \u0432\u0435\u0434\u044c \u0442\u0430\u043a? \u041d\u0430 \u0443\u0434\u0438\u0432\u043b\u0435\u043d\u0438\u0435 \u2014 \u043d\u0435\u0442, \u0442\u0430\u043a \u043a\u0430\u043a \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0430 \u043d\u0438\u0436\u0435 \u043d\u0435 \u043a\u043e\u043c\u043f\u0438\u043b\u0438\u0440\u0443\u0435\u0442\u0441\u044f:<\/p>\n<p>  <\/p>\n<pre><code class=\"rust\">fn main() {     let mut a = 10;     let b: &amp;i32 = &amp;*(&amp;mut a); \/\/ \u043f\u0435\u0440\u0435\u0437\u0430\u0438\u043c\u0441\u0442\u0432\u043e\u0432\u0430\u043d\u0430 \u043a\u0430\u043a \u0438\u043c\u043c\u0443\u0442\u0430\u0431\u0435\u043b\u044c\u043d\u0430\u044f     let c: &amp;i32 = &amp;a;     dbg!(b, c); \/\/ \u043e\u0448\u0438\u0431\u043a\u0430 \u043a\u043e\u043c\u043f\u0438\u043b\u044f\u0446\u0438\u0438 }<\/code><\/pre>\n<p>  <\/p>\n<p>\u0412\u044b\u0434\u0430\u0451\u0442 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0443\u044e \u043e\u0448\u0438\u0431\u043a\u0443:<\/p>\n<p>  <\/p>\n<pre><code class=\"rust\">error[E0502]: cannot borrow `a` as immutable because it is also borrowed as mutable  --&gt; src\/main.rs:4:19   | 3 |     let b: &amp;i32 = &amp;*(&amp;mut a);   |                     -------- mutable borrow occurs here 4 |     let c: &amp;i32 = &amp;a;   |                   ^^ immutable borrow occurs here 5 |     dbg!(b, c);   |          - mutable borrow later used here<\/code><\/pre>\n<p>  <\/p>\n<p>\u041f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u0430\u044f \u0438\u0437\u043c\u0435\u043d\u044f\u0435\u043c\u043e \u0437\u0430\u0438\u043c\u0441\u0442\u0432\u0443\u0435\u0442\u0441\u044f, \u043d\u043e \u0437\u0430\u0442\u0435\u043c \u043d\u0435\u043c\u0435\u0434\u043b\u0435\u043d\u043d\u043e \u0438 \u0431\u0435\u0437\u043e\u0433\u043e\u0432\u043e\u0440\u043e\u0447\u043d\u043e \u043f\u0435\u0440\u0435\u0437\u0430\u0438\u043c\u0441\u0442\u0432\u0443\u0435\u0442\u0441\u044f \u043a\u0430\u043a \u043d\u0435\u0438\u0437\u043c\u0435\u043d\u044f\u0435\u043c\u0430\u044f, \u0430 \u0437\u0430\u0442\u0435\u043c \u0441\u0441\u044b\u043b\u043a\u0430 \u043e\u0442\u0431\u0440\u0430\u0441\u044b\u0432\u0430\u0435\u0442\u0441\u044f. \u041f\u043e\u0447\u0435\u043c\u0443 Rust \u043e\u0431\u0440\u0430\u0449\u0430\u0435\u0442\u0441\u044f \u0441 \u043d\u0435\u0438\u0437\u043c\u0435\u043d\u044f\u0435\u043c\u044b\u043c \u043f\u043e\u0432\u0442\u043e\u0440\u043d\u044b\u043c \u0437\u0430\u0438\u043c\u0441\u0442\u0432\u043e\u0432\u0430\u043d\u0438\u0435\u043c \u0442\u0430\u043a, \u043a\u0430\u043a \u0431\u0443\u0434\u0442\u043e \u0443 \u043d\u0435\u0433\u043e \u0432\u0441\u0435 \u0435\u0449\u0435 \u0435\u0441\u0442\u044c \u0438\u0441\u043a\u043b\u044e\u0447\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0435 \u0432\u0440\u0435\u043c\u044f \u0436\u0438\u0437\u043d\u0438 mut-\u0441\u0441\u044b\u043b\u043a\u0438? \u0425\u043e\u0442\u044f \u043a\u043e\u043d\u043a\u0440\u0435\u0442\u043d\u043e \u0432 \u043f\u0440\u0438\u0432\u0435\u0434\u0435\u043d\u043d\u043e\u043c \u0432\u044b\u0448\u0435 \u043f\u0440\u0438\u043c\u0435\u0440\u0435 \u043f\u0440\u043e\u0431\u043b\u0435\u043c \u043d\u0435\u0442, \u043f\u0440\u0435\u0434\u043e\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u0438\u0435 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u0438 \u043e\u0441\u043b\u0430\u0431\u043b\u0435\u043d\u0438\u044f \u0432\u0441\u0435\u0445 mut-\u0441\u0441\u044b\u043b\u043e\u043a \u0434\u043e \u0440\u0430\u0437\u0434\u0435\u043b\u044f\u0435\u043c\u044b\u0445 \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u0441\u043e\u0437\u0434\u0430\u0435\u0442 \u043f\u043e\u0442\u0435\u043d\u0446\u0438\u0430\u043b\u044c\u043d\u044b\u0435 \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u044b \u0431\u0435\u0437\u043e\u043f\u0430\u0441\u043d\u043e\u0433\u043e \u0434\u043e\u0441\u0442\u0443\u043f\u0430 \u043a \u043f\u0430\u043c\u044f\u0442\u0438:<\/p>\n<p>  <\/p>\n<pre><code class=\"rust\">use std::sync::Mutex;  struct Struct {     mutex: Mutex&lt;String&gt; }  impl Struct {     \/\/ \u043e\u0441\u043b\u0430\u0431\u043b\u044f\u0435\u0442 \u043c\u0443\u0442\u0430\u0431\u0435\u043b\u044c\u043d\u0443\u044e \u0441\u0441\u044b\u043b\u043a\u0443 \u043d\u0430 self \u0434\u043e \u0440\u0430\u0437\u0434\u0435\u043b\u044f\u0435\u043c\u043e\u0439     fn get_string(&amp;mut self) -&gt; &amp;str {         self.mutex.get_mut().unwrap()     }     fn mutate_string(&amp;self) {         \/\/ \u0435\u0441\u043b\u0438 \u0431\u044b Rust \u0440\u0430\u0437\u0440\u0435\u0448\u0430\u043b \u043e\u0441\u043b\u0430\u0431\u043b\u0435\u043d\u0438\u0435 \u043c\u0443\u0442\u0430\u0431\u0435\u043b\u044c\u043d\u044b\u0445 \u0441\u0441\u044b\u043b\u043e\u043a \u0434\u043e \u0440\u0430\u0437\u0434\u0435\u043b\u044f\u0435\u043c\u044b\u0445,         \/\/ \u0442\u043e \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0430\u044f \u0441\u0442\u0440\u043e\u043a\u0430 \u0434\u0435\u043b\u0430\u043b\u0430 \u0431\u044b \u043d\u0435\u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0439 \u0432\u0441\u0435         \/\/ \u0440\u0430\u0437\u0434\u0435\u043b\u044f\u0435\u043c\u044b\u0435 \u0441\u0441\u044b\u043b\u043a\u0438, \u0432\u043e\u0437\u0432\u0440\u0430\u0449\u0451\u043d\u043d\u044b\u0435 get_string         *self.mutex.lock().unwrap() = &quot;surprise!&quot;.to_owned();     } }  fn main() {     let mut s = Struct {         mutex: Mutex::new(&quot;string&quot;.to_owned())     };     let str_ref = s.get_string(); \/\/ \u043c\u0443\u0442\u0430\u0431\u0435\u043b\u044c\u043d\u0430\u044f \u0441\u0441\u044b\u043b\u043a\u0430 \u043e\u0441\u043b\u0430\u0431\u043b\u0435\u043d\u0430 \u0434\u043e \u0440\u0430\u0437\u0434\u0435\u043b\u044f\u0435\u043c\u043e\u0439     s.mutate_string(); \/\/ str_ref \u0438\u043d\u0432\u0430\u043b\u0438\u0434\u0438\u0440\u043e\u0432\u0430\u043d\u0430, \u0442\u0435\u043f\u0435\u0440\u044c \u044d\u0442\u043e \u0432\u0438\u0441\u044f\u0447\u0438\u0439 \u0443\u043a\u0430\u0437\u0430\u0442\u0435\u043b\u044c     dbg!(str_ref); \/\/ \u043e\u0448\u0438\u0431\u043a\u0430 \u043a\u043e\u043c\u043f\u0438\u043b\u044f\u0446\u0438\u0438, \u043a\u0430\u043a \u0438 \u043e\u0436\u0438\u0434\u0430\u043b\u043e\u0441\u044c }<\/code><\/pre>\n<p>  <\/p>\n<p>\u0414\u0435\u043b\u043e \u0432 \u0442\u043e\u043c, \u0447\u0442\u043e \u043a\u043e\u0433\u0434\u0430 \u0432\u044b \u043f\u043e\u0432\u0442\u043e\u0440\u043d\u043e \u0437\u0430\u0438\u043c\u0441\u0442\u0432\u0443\u0435\u0442\u0435 mut-\u0441\u0441\u044b\u043b\u043a\u0443 \u043a\u0430\u043a \u0440\u0430\u0437\u0434\u0435\u043b\u044f\u0435\u043c\u0443\u044e, \u0432\u044b \u043f\u043e\u043b\u0443\u0447\u0430\u0435\u0442\u0435 \u0441\u0441\u044b\u043b\u043a\u0443, \u043d\u043e \u0441 \u043d\u0435\u043a\u043e\u0442\u043e\u0440\u044b\u043c \u043f\u043e\u0434\u0432\u043e\u0445\u043e\u043c: \u043e\u043d\u0430 \u043f\u0440\u043e\u0434\u043b\u0435\u0432\u0430\u0435\u0442 \u0432\u0440\u0435\u043c\u044f \u0436\u0438\u0437\u043d\u0438 \u0438\u0437\u043d\u0430\u0447\u0430\u043b\u044c\u043d\u043e\u0439 \u0441\u0441\u044b\u043b\u043a\u0438 \u043d\u0430 \u0432\u0440\u0435\u043c\u044f \u043f\u0435\u0440\u0435\u0437\u0430\u0438\u043c\u0441\u0442\u0432\u043e\u0432\u0430\u043d\u0438\u044f, \u0434\u0430\u0436\u0435 \u0435\u0441\u043b\u0438 \u0442\u0430 \u0443\u0436\u0435 \u043d\u0435 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f. \u0418\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u043f\u0435\u0440\u0435\u0437\u0430\u0438\u043c\u0441\u0442\u0432\u043e\u0432\u0430\u043d\u043d\u0443\u044e \u0440\u0430\u0437\u0434\u0435\u043b\u044f\u0435\u043c\u0443\u044e \u0441\u0441\u044b\u043b\u043a\u0443 \u043e\u0447\u0435\u043d\u044c \u0441\u043b\u043e\u0436\u043d\u043e, \u043f\u043e\u0442\u043e\u043c\u0443 \u0447\u0442\u043e \u043e\u043d\u0430 \u043d\u0435\u0438\u0437\u043c\u0435\u043d\u044f\u0435\u043c\u0430\u044f, \u043d\u043e \u043f\u0440\u0438 \u044d\u0442\u043e\u043c \u043d\u0435 \u043c\u043e\u0436\u0435\u0442 \u043f\u0435\u0440\u0435\u0441\u0435\u043a\u0430\u0442\u044c\u0441\u044f \u0441 \u0434\u0440\u0443\u0433\u0438\u043c\u0438 \u0440\u0430\u0437\u0434\u0435\u043b\u044f\u0435\u043c\u044b\u043c\u0438 \u0441\u0441\u044b\u043b\u043a\u0430\u043c\u0438. \u041f\u0435\u0440\u0435\u0437\u0430\u0438\u043c\u0441\u0442\u0432\u043e\u0432\u0430\u043d\u043d\u0430\u044f \u0440\u0430\u0437\u0434\u0435\u043b\u044f\u0435\u043c\u0430\u044f \u0441\u0441\u044b\u043b\u043a\u0430 \u0438\u043c\u0435\u0435\u0442 \u0432\u0441\u0435 \u043c\u0438\u043d\u0443\u0441\u044b \u0438 \u0440\u0430\u0437\u0434\u0435\u043b\u044f\u0435\u043c\u043e\u0439 \u0441\u0441\u044b\u043b\u043a\u0438, \u0438 \u0438\u0437\u043c\u0435\u043d\u044f\u0435\u043c\u043e\u0439, \u0438 \u043d\u0435 \u0438\u043c\u0435\u0435\u0442 \u043f\u043b\u044e\u0441\u043e\u0432 \u043d\u0438 \u0442\u043e\u0439, \u043d\u0438 \u0434\u0440\u0443\u0433\u043e\u0439. \u042f \u0441\u0447\u0438\u0442\u0430\u044e, \u0447\u0442\u043e \u043f\u043e\u0432\u0442\u043e\u0440\u043d\u043e\u0435 \u0437\u0430\u0438\u043c\u0441\u0442\u0432\u043e\u0432\u0430\u043d\u0438\u0435 \u043c\u0443\u0442\u0430\u0431\u0435\u043b\u044c\u043d\u043e\u0439 \u0441\u0441\u044b\u043b\u043a\u0438 \u043a\u0430\u043a \u0440\u0430\u0437\u0434\u0435\u043b\u044f\u0435\u043c\u043e\u0439 \u0434\u043e\u043b\u0436\u043d\u043e \u0441\u0447\u0438\u0442\u0430\u0442\u044c\u0441\u044f \u0432 Rust \u0430\u043d\u0442\u0438-\u043f\u0430\u0442\u0442\u0435\u0440\u043d\u043e\u043c. \u0417\u043d\u0430\u0442\u044c \u044d\u0442\u043e\u0442 \u0430\u043d\u0442\u0438-\u043f\u0430\u0442\u0442\u0435\u0440\u043d \u0432\u0430\u0436\u043d\u043e, \u0447\u0442\u043e\u0431\u044b \u0432\u044b \u043c\u043e\u0433\u043b\u0438 \u043b\u0435\u0433\u043a\u043e \u0437\u0430\u043c\u0435\u0442\u0438\u0442\u044c \u0435\u0433\u043e \u0432 \u043a\u043e\u0434\u0435, \u043f\u043e\u0434\u043e\u0431\u043d\u043e\u043c \u044d\u0442\u043e\u043c\u0443:<\/p>\n<p>  <\/p>\n<pre><code class=\"rust\">\/\/ \u043e\u0441\u043b\u0430\u0431\u043b\u044f\u0435\u0442 \u0438\u0437\u043c\u0435\u043d\u044f\u0435\u043c\u044b\u0439 T \u0434\u043e \u0440\u0430\u0437\u0434\u0435\u043b\u044f\u0435\u043c\u043e\u0433\u043e T fn some_function&lt;T&gt;(some_arg: &amp;mut T) -&gt; &amp;T;  struct Struct;  impl Struct {     \/\/ \u043e\u0441\u043b\u0430\u0431\u043b\u044f\u0435\u0442 \u043c\u0443\u0442\u0430\u0431\u0435\u043b\u044c\u043d\u0443\u044e \u0441\u0441\u044b\u043b\u043a\u0443 \u043d\u0430 self \u0434\u043e \u0440\u0430\u0437\u0434\u0435\u043b\u044f\u0435\u043c\u043e\u0439     fn some_method(&amp;mut self) -&gt; &amp;Self;      \/\/ \u043e\u0441\u043b\u0430\u0431\u043b\u044f\u0435\u0442 \u043c\u0443\u0442\u0430\u0431\u0435\u043b\u044c\u043d\u0443\u044e \u0441\u0441\u044b\u043b\u043a\u0443 \u043d\u0430 self \u0434\u043e \u0440\u0430\u0437\u0434\u0435\u043b\u044f\u0435\u043c\u043e\u0439 \u0441\u0441\u044b\u043b\u043a\u0438 \u043d\u0430 T     fn other_method(&amp;mut self) -&gt; &amp;T; }<\/code><\/pre>\n<p>  <\/p>\n<p>\u0414\u0430\u0436\u0435 \u0435\u0441\u043b\u0438 \u0432\u044b \u0438\u0437\u0431\u0435\u0433\u0430\u0435\u0442\u0435 \u043f\u043e\u0432\u0442\u043e\u0440\u043d\u044b\u0445 \u0437\u0430\u0438\u043c\u0441\u0442\u0432\u043e\u0432\u0430\u043d\u0438\u0439 \u0432 \u0441\u0438\u0433\u043d\u0430\u0442\u0443\u0440\u0430\u0445 \u0444\u0443\u043d\u043a\u0446\u0438\u0439 \u0438 \u043c\u0435\u0442\u043e\u0434\u043e\u0432, Rust \u043f\u043e-\u043f\u0440\u0435\u0436\u043d\u0435\u043c\u0443 \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u0435\u0442 \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0438\u0435 \u043d\u0435\u044f\u0432\u043d\u044b\u0435 \u043f\u043e\u0432\u0442\u043e\u0440\u043d\u044b\u0435 \u0437\u0430\u0438\u043c\u0441\u0442\u0432\u043e\u0432\u0430\u043d\u0438\u044f, \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u0441 \u044d\u0442\u043e\u0439 \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u043e\u0439 \u043b\u0435\u0433\u043a\u043e \u043c\u043e\u0436\u043d\u043e \u0441\u0442\u043e\u043b\u043a\u043d\u0443\u0442\u044c\u0441\u044f, \u043d\u0435 \u0440\u0430\u0441\u043f\u043e\u0437\u043d\u0430\u0432 \u0435\u0451:<\/p>\n<p>  <\/p>\n<pre><code class=\"rust\">use std::collections::HashMap;  type PlayerID = i32;  #[derive(Debug, Default)] struct Player {     score: i32, }  fn start_game(player_a: PlayerID, player_b: PlayerID, server: &amp;mut HashMap&lt;PlayerID, Player&gt;) {     \/\/ \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c \u043e\u0442 \u0441\u0435\u0440\u0432\u0435\u0440\u0430 \u0438\u0433\u0440\u043e\u043a\u043e\u0432 \u0438\u043b\u0438 \u0441\u043e\u0437\u0434\u0430\u0442\u044c \u0438 \u0441\u043e\u0445\u0440\u0430\u043d\u0438\u0442\u044c \u043d\u043e\u0432\u044b\u0445, \u0435\u0441\u043b\u0438 \u0438\u0445 \u0435\u0449\u0451 \u043d\u0435\u0442     let player_a: &amp;Player = server.entry(player_a).or_default();     let player_b: &amp;Player = server.entry(player_b).or_default();      \/\/ \u0434\u0435\u043b\u0430\u0435\u043c \u0447\u0442\u043e-\u0442\u043e \u0441 \u0438\u0433\u0440\u043e\u043a\u0430\u043c\u0438     dbg!(player_a, player_b); \/\/ \u043e\u0448\u0438\u0431\u043a\u0430 \u043a\u043e\u043c\u043f\u0438\u043b\u044f\u0446\u0438\u0438 }<\/code><\/pre>\n<p>  <\/p>\n<p>\u041f\u0440\u0438\u043c\u0435\u0440 \u0432\u044b\u0448\u0435 \u043d\u0435 \u0443\u0434\u0430\u0451\u0442\u0441\u044f \u0441\u043a\u043e\u043c\u043f\u0438\u043b\u0438\u0440\u043e\u0432\u0430\u0442\u044c. <code>or_default()<\/code> \u0432\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u0442 <code>&amp;mut Player<\/code>, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043c\u044b \u043d\u0435\u044f\u0432\u043d\u043e \u043f\u043e\u0432\u0442\u043e\u0440\u043d\u043e \u0437\u0430\u0438\u043c\u0441\u0442\u0432\u0443\u0435\u043c \u043a\u0430\u043a <code>&amp;Player<\/code> \u0438\u0437-\u0437\u0430 \u043d\u0430\u0448\u0438\u0445 \u044f\u0432\u043d\u044b\u0445 \u0430\u043d\u043d\u043e\u0442\u0430\u0446\u0438\u0439 \u0442\u0438\u043f\u043e\u0432. \u0427\u0442\u043e\u0431\u044b \u0441\u0434\u0435\u043b\u0430\u0442\u044c \u0442\u043e, \u0447\u0442\u043e \u043c\u044b \u0445\u043e\u0442\u0438\u043c, \u043d\u0430\u043c \u043f\u0440\u0438\u0445\u043e\u0434\u0438\u0442\u0441\u044f \u0434\u0435\u043b\u0430\u0442\u044c \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0435\u0435:<\/p>\n<p>  <\/p>\n<pre><code class=\"rust\">use std::collections::HashMap;  type PlayerID = i32;  #[derive(Debug, Default)] struct Player {     score: i32, }  fn start_game(player_a: PlayerID, player_b: PlayerID, server: &amp;mut HashMap&lt;PlayerID, Player&gt;) {     \/\/ \u0438\u0437\u0431\u0430\u0432\u043b\u044f\u0435\u043c\u0441\u044f \u043e\u0442 \u0438\u0437\u043c\u0435\u043d\u044f\u0435\u043c\u044b\u0445 \u0441\u0441\u044b\u043b\u043e\u043a \u043d\u0430 Player, \u0442\u0430\u043a \u043a\u0430\u043a \u043c\u044b \u0432\u0441\u0451 \u0440\u0430\u0432\u043d\u043e \u043d\u0435 \u043c\u043e\u0436\u0435\u043c \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0438\u0445 \u0432\u043c\u0435\u0441\u0442\u0435     server.entry(player_a).or_default();     server.entry(player_b).or_default();      \/\/ \u0441\u043d\u043e\u0432\u0430 \u043f\u043e\u043b\u0443\u0447\u0430\u0435\u043c \u0434\u043e\u0441\u0442\u0443\u043f \u043a \u0438\u0433\u0440\u043e\u043a\u0430\u043c, \u043d\u0430 \u044d\u0442\u043e\u0442 \u0440\u0430\u0437 \u043f\u043e \u043d\u0435\u0438\u0437\u043c\u0435\u043d\u044f\u0435\u043c\u044b\u043c \u0441\u0441\u044b\u043b\u043a\u0430\u043c, \u0431\u0435\u0437 \u043d\u0435\u044f\u0432\u043d\u044b\u0445 \u043f\u0435\u0440\u0435\u0437\u0430\u0438\u043c\u0441\u0442\u0432\u043e\u0432\u0430\u043d\u0438\u0439     let player_a = server.get(&amp;player_a);     let player_b = server.get(&amp;player_b);      \/\/ \u0447\u0442\u043e-\u0442\u043e \u0434\u0435\u043b\u0430\u0435\u043c \u0441 \u0438\u0433\u0440\u043e\u043a\u0430\u043c\u0438     dbg!(player_a, player_b); \/\/ \u043a\u043e\u043c\u043f\u0438\u043b\u0438\u0440\u0443\u0435\u0442\u0441\u044f }<\/code><\/pre>\n<p>  <\/p>\n<p>\u0414\u0430, \u044d\u0442\u043e \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u043d\u0435\u043b\u043e\u0432\u043a\u043e \u0438 \u043d\u0435\u0443\u043a\u043b\u044e\u0436\u0435, \u043d\u043e \u044d\u0442\u043e \u2014 \u0436\u0435\u0440\u0442\u0432\u0430, \u043a\u043e\u0442\u043e\u0440\u0443\u044e \u043c\u044b \u043f\u0440\u0438\u043d\u043e\u0441\u0438\u043c \u043d\u0430 \u0410\u043b\u0442\u0430\u0440\u044c \u0411\u0435\u0437\u043e\u043f\u0430\u0441\u043d\u043e\u0439 \u0420\u0430\u0431\u043e\u0442\u044b \u0421 \u041f\u0430\u043c\u044f\u0442\u044c\u044e.<\/p>\n<p>  <\/p>\n<p><em>(\u043f\u0440\u0438\u043c. \u043f\u0435\u0440\u0435\u0432\u043e\u0434\u0447\u0438\u043a\u0430: \u043d\u0430 \u0441\u0430\u043c\u043e\u043c \u0434\u0435\u043b\u0435 \u0443 \u044d\u0442\u043e\u0433\u043e \u043d\u0435\u0443\u0434\u043e\u0431\u043d\u043e\u0433\u043e \u043f\u043e\u0432\u0435\u0434\u0435\u043d\u0438\u044f \u0435\u0441\u0442\u044c \u043f\u0440\u0438\u0447\u0438\u043d\u0430. \u0414\u043e\u043f\u0443\u0441\u0442\u0438\u043c, \u0447\u0442\u043e \u0442\u0430\u0431\u043b\u0438\u0446\u0430 <code>server<\/code> \u0437\u0430\u043f\u043e\u043b\u043d\u0435\u043d\u0430 \u043f\u0440\u0430\u043a\u0442\u0438\u0447\u0435\u0441\u043a\u0438 \u043f\u043e\u043b\u043d\u043e\u0441\u0442\u044c\u044e: \u0442\u0430\u043c \u0435\u0441\u0442\u044c \u0441\u0432\u043e\u0431\u043e\u0434\u043d\u043e\u0435 \u043c\u0435\u0441\u0442\u043e \u0434\u043b\u044f \u043e\u0434\u043d\u043e\u0433\u043e <code>Player<\/code>, \u043d\u043e \u043d\u0435\u0442\u0443 \u0434\u043b\u044f \u0434\u0432\u0443\u0445. \u0412 \u044d\u0442\u043e\u043c \u0441\u043b\u0443\u0447\u0430\u0435 \u043f\u0435\u0440\u0432\u044b\u0439 \u044d\u043a\u0437\u0435\u043c\u043f\u043b\u044f\u0440 <code>Player<\/code> \u0431\u0443\u0434\u0435\u0442 \u0441\u043e\u0445\u0440\u0430\u043d\u0451\u043d \u0432 \u0438\u043c\u0435\u044e\u0449\u0435\u0439\u0441\u044f \u043f\u0430\u043c\u044f\u0442\u0438, \u0430 \u0432\u0442\u043e\u0440\u043e\u0439 \u0441\u043f\u0440\u043e\u0432\u043e\u0446\u0438\u0440\u0443\u0435\u0442 \u0440\u0435\u0430\u043b\u043b\u043e\u043a\u0430\u0446\u0438\u044e \u0441\u043b\u043e\u0432\u0430\u0440\u044f. \u0415\u0441\u043b\u0438 \u043f\u0440\u0438 \u044d\u0442\u043e\u043c \u0443\u0432\u0435\u043b\u0438\u0447\u0438\u0442\u044c \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u0432\u044b\u0434\u0435\u043b\u0435\u043d\u043d\u043e\u0439 \u043f\u0430\u043c\u044f\u0442\u0438 \u043f\u043e \u043c\u0435\u0441\u0442\u0443 \u043d\u0435 \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u0441\u044f, \u0442\u043e \u0431\u0443\u0434\u0435\u0442 \u0432\u044b\u0434\u0435\u043b\u0435\u043d \u043d\u043e\u0432\u044b\u0439 \u043a\u0443\u0441\u043e\u043a \u043f\u0430\u043c\u044f\u0442\u0438 \u043f\u043e \u043d\u043e\u0432\u043e\u043c\u0443 \u0430\u0434\u0440\u0435\u0441\u0443, \u0432 \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043a\u043e\u043f\u0438\u0440\u0443\u0435\u0442\u0441\u044f \u0441\u043e\u0434\u0435\u0440\u0436\u0438\u043c\u043e\u0435 \u0441\u0442\u0430\u0440\u043e\u0433\u043e \u0441\u043b\u043e\u0432\u0430\u0440\u044f, \u043f\u0440\u0438 \u044d\u0442\u043e\u043c \u0441\u0441\u044b\u043b\u043a\u0438 \u043d\u0430 \u0441\u0442\u0430\u0440\u0443\u044e \u043f\u0430\u043c\u044f\u0442\u044c \u0441\u0442\u0430\u043d\u043e\u0432\u044f\u0442\u0441\u044f \u043d\u0435\u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u043c\u0438. \u0415\u0441\u043b\u0438 \u0431\u044b Rust \u0440\u0430\u0437\u0440\u0435\u0448\u0430\u043b \u043f\u0430\u0442\u0442\u0435\u0440\u043d \u043a\u043e\u0434\u0430 \u0432\u044b\u0448\u0435, \u0442\u043e \u0432 \u043d\u0435\u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u0440\u0435\u0434\u043a\u0438\u0445 \u0441\u043b\u0443\u0447\u0430\u044f\u0445 \u0443 \u043d\u0430\u0441 \u0431\u044b \u043f\u043e\u0441\u043b\u0435 \u0432\u0441\u0442\u0430\u0432\u043a\u0438 \u0432\u0442\u043e\u0440\u043e\u0433\u043e <code>Player<\/code> \u0441\u0441\u044b\u043b\u043a\u0430 \u043d\u0430 \u043f\u0435\u0440\u0432\u044b\u0439 \u0441\u0442\u0430\u043d\u043e\u0432\u0438\u043b\u0430\u0441\u044c \u0431\u044b \u0432\u0438\u0441\u044f\u0447\u0435\u0439)<\/em><\/p>\n<p>  <\/p>\n<p><strong>\u041a\u043b\u044e\u0447\u0435\u0432\u044b\u0435 \u0432\u044b\u0432\u043e\u0434\u044b<\/strong><\/p>\n<p>  <\/p>\n<ul>\n<li>\u0441\u0442\u0430\u0440\u0430\u0439\u0442\u0435\u0441\u044c \u043d\u0435 \u043f\u0435\u0440\u0435\u0437\u0430\u0438\u043c\u0441\u0442\u0432\u043e\u0432\u0430\u0442\u044c mut-\u0441\u0441\u044b\u043b\u043a\u0438 \u043a\u0430\u043a \u0440\u0430\u0437\u0434\u0435\u043b\u044f\u0435\u043c\u044b\u0435, \u0438\u043d\u0430\u0447\u0435 \u0432\u044b \u043e\u0431 \u044d\u0442\u043e\u043c \u043f\u043e\u0436\u0430\u043b\u0435\u0435\u0442\u0435<\/li>\n<li>\u043f\u043e\u0432\u0442\u043e\u0440\u043d\u043e\u0435 \u0437\u0430\u0438\u043c\u0441\u0442\u0432\u043e\u0432\u0430\u043d\u0438\u0435 mut-\u0441\u0441\u044b\u043b\u043a\u0438 \u043d\u0435 \u0437\u0430\u043a\u0430\u043d\u0447\u0438\u0432\u0430\u0435\u0442 \u0435\u0451 \u0432\u0440\u0435\u043c\u044f \u0436\u0438\u0437\u043d\u0438, \u0434\u0430\u0436\u0435 \u0435\u0441\u043b\u0438 \u0441\u0430\u043c\u0430 \u0441\u0441\u044b\u043b\u043a\u0430 \u043e\u0442\u0431\u0440\u043e\u0448\u0435\u043d\u0430<\/li>\n<\/ul>\n<p>  <\/p>\n<h3 id=\"anchor10-closures-follow-the-same-lifetime-elision-rules-as-functionsanchor-10-zamykaniya-sleduyut-tem-zhe-pravilam-vyvoda-vremyon-zhizni-chto-i-funkcii\"><a name=\"10-closures-follow-the-same-lifetime-elision-rules-as-functions\"><\/a> 10) \u0437\u0430\u043c\u044b\u043a\u0430\u043d\u0438\u044f \u0441\u043b\u0435\u0434\u0443\u044e\u0442 \u0442\u0435\u043c \u0436\u0435 \u043f\u0440\u0430\u0432\u0438\u043b\u0430\u043c \u0432\u044b\u0432\u043e\u0434\u0430 \u0432\u0440\u0435\u043c\u0451\u043d \u0436\u0438\u0437\u043d\u0438, \u0447\u0442\u043e \u0438 \u0444\u0443\u043d\u043a\u0446\u0438\u0438<\/h3>\n<p>  <\/p>\n<p>\u042d\u0442\u043e \u0441\u043a\u043e\u0440\u0435\u0435 \u043f\u043e\u0434\u0432\u043e\u0445, \u043d\u0435\u0436\u0435\u043b\u0438 \u0437\u0430\u0431\u043b\u0443\u0436\u0434\u0435\u043d\u0438\u0435.<\/p>\n<p>  <\/p>\n<p>\u0417\u0430\u043c\u044b\u043a\u0430\u043d\u0438\u044f, \u043d\u0435\u0441\u043c\u043e\u0442\u0440\u044f \u043d\u0430 \u0442\u043e, \u0447\u0442\u043e \u043e\u043d\u0438 \u044f\u0432\u043b\u044f\u044e\u0442\u0441\u044f \u0444\u0443\u043d\u043a\u0446\u0438\u044f\u043c\u0438, \u043d\u0435 \u0441\u043b\u0435\u0434\u0443\u044e\u0442 \u0442\u0435\u043c \u0436\u0435 \u043f\u0440\u0430\u0432\u0438\u043b\u0430\u043c \u0432\u044b\u0432\u043e\u0434\u0430 \u0432\u0440\u0435\u043c\u0451\u043d \u0436\u0438\u0437\u043d\u0438, \u0447\u0442\u043e \u0438 \u0444\u0443\u043d\u043a\u0446\u0438\u0438.<\/p>\n<p>  <\/p>\n<pre><code class=\"rust\">fn function(x: &amp;i32) -&gt; &amp;i32 {     x }  fn main() {     let closure = |x: &amp;i32| x; }<\/code><\/pre>\n<p>  <\/p>\n<p>\u0412\u044b\u0434\u0430\u0451\u0442 \u043e\u0448\u0438\u0431\u043a\u0443:<\/p>\n<p>  <\/p>\n<pre><code class=\"rust\">error: lifetime may not live long enough  --&gt; src\/main.rs:6:29   | 6 |     let closure = |x: &amp;i32| x;   |                       -   - ^ returning this value requires that `'1` must outlive `'2`   |                       |   |   |                       |   return type of closure is &amp;'2 i32   |                       let's call the lifetime of this reference `'1`<\/code><\/pre>\n<p>  <\/p>\n<p>\u041f\u043e\u0441\u043b\u0435 \u0440\u0430\u0441\u0441\u0430\u0445\u0430\u0440\u0438\u0432\u0430\u043d\u0438\u044f \u043c\u044b \u043f\u043e\u043b\u0443\u0447\u0430\u0435\u043c:<\/p>\n<p>  <\/p>\n<pre><code class=\"rust\">\/\/ \u0432\u0440\u0435\u043c\u044f \u0436\u0438\u0437\u043d\u0438 \u0430\u0440\u0433\u0443\u043c\u0435\u043d\u0442\u0430 \u043f\u0440\u0438\u043c\u0435\u043d\u044f\u0435\u0442\u0441\u044f \u043a \u0432\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u043c\u043e\u043c\u0443 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044e fn function&lt;'a&gt;(x: &amp;'a i32) -&gt; &amp;'a i32 {     x }  fn main() {     \/\/ \u0430\u0440\u0433\u0443\u043c\u0435\u043d\u0442 \u0438 \u0432\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u043c\u043e\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u043f\u043e\u043b\u0443\u0447\u0430\u044e\u0442 \u0440\u0430\u0437\u043d\u044b\u0435 \u0432\u0440\u0435\u043c\u0435\u043d\u0430 \u0436\u0438\u0437\u043d\u0438     let closure = for&lt;'a, 'b&gt; |x: &amp;'a i32| -&gt; &amp;'b i32 { x };     \/\/ \u0432\u043d\u0438\u043c\u0430\u043d\u0438\u0435, \u0441\u0442\u0440\u043e\u043a\u0430 \u0432\u044b\u0448\u0435 \u043d\u0435 \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u043a\u043e\u0440\u0440\u0435\u043a\u0442\u043d\u044b\u043c \u0441\u0438\u043d\u0442\u0430\u043a\u0441\u0438\u0441\u043e\u043c Rust, \u043d\u043e \u043e\u043d\u0430 \u0442\u0440\u0435\u0431\u0443\u0435\u0442\u0441\u044f \u0434\u043b\u044f \u043f\u043e\u044f\u0441\u043d\u0435\u043d\u0438\u044f }<\/code><\/pre>\n<p>  <\/p>\n<p>\u0414\u043b\u044f \u044d\u0442\u043e\u0433\u043e \u043d\u0435\u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0438\u044f \u043d\u0435\u0442 \u0443\u0434\u043e\u0432\u043b\u0435\u0442\u0432\u043e\u0440\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0439 \u043f\u0440\u0438\u0447\u0438\u043d\u044b. \u0421\u043d\u0430\u0447\u0430\u043b\u0430 \u0437\u0430\u043c\u044b\u043a\u0430\u043d\u0438\u044f \u0431\u044b\u043b\u0438 \u0440\u0435\u0430\u043b\u0438\u0437\u043e\u0432\u0430\u043d\u044b \u0441 \u0432\u044b\u0432\u043e\u0434\u043e\u043c \u0442\u0438\u043f\u043e\u0432, \u043e\u0442\u043b\u0438\u0447\u043d\u044b\u043c \u043e\u0442 \u0444\u0443\u043d\u043a\u0446\u0438\u0439, \u0438 \u0442\u0435\u043f\u0435\u0440\u044c \u043c\u044b \u0437\u0430\u0441\u0442\u0440\u044f\u043b\u0438 \u0441 \u044d\u0442\u0438\u043c \u043d\u0430\u0432\u0441\u0435\u0433\u0434\u0430, \u043f\u043e\u0442\u043e\u043c\u0443 \u0447\u0442\u043e \u0432 \u043d\u0430\u0448\u0435 \u0432\u0440\u0435\u043c\u044f \u0443\u043d\u0438\u0444\u0438\u043a\u0430\u0446\u0438\u044f \u0438\u0445 \u043f\u043e\u0432\u0435\u0434\u0435\u043d\u0438\u044f \u0441\u0442\u0430\u043b\u043e \u0431\u044b \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u0435\u043c, \u043b\u043e\u043c\u0430\u044e\u0449\u0438\u043c \u043e\u0431\u0440\u0430\u0442\u043d\u0443\u044e \u0441\u043e\u0432\u043c\u0435\u0441\u0442\u0438\u043c\u043e\u0441\u0442\u044c. \u0422\u0430\u043a \u043a\u0430\u043a \u0436\u0435 \u043c\u044b \u043c\u043e\u0436\u0435\u043c \u044f\u0432\u043d\u043e \u0430\u043d\u043d\u043e\u0442\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0442\u0438\u043f \u0437\u0430\u043c\u044b\u043a\u0430\u043d\u0438\u044f? \u0412\u043e\u0442 \u0434\u043e\u0441\u0442\u0443\u043f\u043d\u044b\u0435 \u043d\u0430\u043c \u0432\u0430\u0440\u0438\u0430\u043d\u0442\u044b:<\/p>\n<p>  <\/p>\n<pre><code class=\"rust\">fn main() {     \/\/ \u043a\u0430\u0441\u0442\u0443\u0435\u043c \u043a \u0442\u0440\u0435\u0439\u0442-\u043e\u0431\u044a\u0435\u043a\u0442\u0443, \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u0441\u044f \u0431\u0435\u0437\u0440\u0430\u0437\u043c\u0435\u0440\u043d\u044b\u043c, \u0443\u043f\u0441, \u043e\u0448\u0438\u0431\u043a\u0430 \u043a\u043e\u043c\u043f\u0438\u043b\u044f\u0446\u0438\u0438     let identity: dyn Fn(&amp;i32) -&gt; &amp;i32 = |x: &amp;i32| x;      \/\/ \u043c\u043e\u0436\u0435\u043c \u0432\u044b\u0434\u0435\u043b\u0438\u0442\u044c \u0432 \u043a\u0443\u0447\u0435, \u043d\u043e \u044d\u0442\u043e \u043a\u0430\u043a-\u0442\u043e \u043d\u0435\u0443\u043a\u043b\u044e\u0436\u0435     let identity: Box&lt;dyn Fn(&amp;i32) -&gt; &amp;i32&gt; = Box::new(|x: &amp;i32| x);      \/\/ \u043c\u043e\u0436\u0435\u043c \u043d\u0435 \u0430\u043b\u043b\u043e\u0446\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0432\u043e\u0432\u0441\u0435, \u0430 \u0441\u043e\u0437\u0434\u0430\u0442\u044c \u0441\u0442\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0443\u044e \u0441\u0441\u044b\u043b\u043a\u0443     let identity: &amp;dyn Fn(&amp;i32) -&gt; &amp;i32 = &amp;|x: &amp;i32| x;      \/\/ \u0440\u0430\u0441\u0441\u0430\u0445\u0430\u0440\u0435\u043d\u043d\u0430\u044f \u0441\u0442\u0440\u043e\u043a\u0430 \u0432\u044b\u0448\u0435 :)     let identity: &amp;'static (dyn for&lt;'a&gt; Fn(&amp;'a i32) -&gt; &amp;'a i32 + 'static) = &amp;|x: &amp;i32| -&gt; &amp;i32 { x };      \/\/ \u0432 \u0438\u0434\u0435\u0430\u043b\u0435 \u043d\u0430\u043c \u0445\u043e\u0442\u0435\u043b\u043e\u0441\u044c \u0431\u044b \u043d\u0430\u043f\u0438\u0441\u0430\u0442\u044c \u0442\u0430\u043a, \u043d\u043e \u044d\u0442\u043e \u043d\u0435\u043a\u043e\u0440\u0440\u0435\u043a\u0442\u043d\u044b\u0439 \u0441\u0438\u043d\u0442\u0430\u043a\u0441\u0438\u0441     let identity: impl Fn(&amp;i32) -&gt; &amp;i32 = |x: &amp;i32| x;      \/\/ \u044d\u0442\u043e \u0442\u043e\u0436\u0435 \u0431\u044b\u043b\u043e \u0431\u044b \u0445\u043e\u0440\u043e\u0448\u043e, \u043d\u043e \u044d\u0442\u043e \u0442\u0430\u043a\u0436\u0435 \u043d\u0435\u043a\u043e\u0440\u0440\u0435\u043a\u0442\u043d\u044b\u0439 \u0441\u0438\u043d\u0442\u0430\u043a\u0441\u0438\u0441     let identity = for&lt;'a&gt; |x: &amp;'a i32| -&gt; &amp;'a i32 { x };      \/\/ \u0442\u0430\u043a \u043a\u0430\u043a &quot;impl trait&quot; \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442 \u0432 \u043f\u043e\u0437\u0438\u0446\u0438\u0438 \u0432\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u043c\u043e\u0433\u043e \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f     fn return_identity() -&gt; impl Fn(&amp;i32) -&gt; &amp;i32 {         |x| x     }     let identity = return_identity();      \/\/ \u0431\u043e\u043b\u0435\u0435 \u043e\u0431\u0449\u0430\u044f \u0432\u0435\u0440\u0441\u0438\u044f \u043f\u0440\u0435\u0434\u044b\u0434\u0443\u0449\u0435\u0433\u043e \u0440\u0435\u0448\u0435\u043d\u0438\u044f     fn annotate&lt;T, F&gt;(f: F) -&gt; F where F: Fn(&amp;T) -&gt; &amp;T {         f     }     let identity = annotate(|x: &amp;i32| x); }<\/code><\/pre>\n<p>  <\/p>\n<p>\u0423\u0432\u0435\u0440\u0435\u043d, \u0432\u044b \u0443\u0436\u0435 \u0437\u0430\u043c\u0435\u0442\u0438\u043b\u0438 \u0432 \u043f\u0440\u0438\u0432\u0435\u0434\u0435\u043d\u043d\u044b\u0445 \u0432\u044b\u0448\u0435 \u043f\u0440\u0438\u043c\u0435\u0440\u0430\u0445, \u0447\u0442\u043e \u043a\u043e\u0433\u0434\u0430 \u043d\u0430 \u0442\u0438\u043f\u044b \u0437\u0430\u043c\u044b\u043a\u0430\u043d\u0438\u0439 \u043d\u0430\u043a\u043b\u0430\u0434\u044b\u0432\u0430\u044e\u0442\u0441\u044f \u043e\u0433\u0440\u0430\u043d\u0438\u0447\u0435\u043d\u0438\u044f \u0442\u0440\u0435\u0439\u0442\u043e\u0432 \u0437\u0430\u043c\u044b\u043a\u0430\u043d\u0438\u0439, \u043e\u043d\u0438 \u0441\u043b\u0435\u0434\u0443\u044e\u0442 \u043e\u0431\u044b\u0447\u043d\u044b\u043c \u043f\u0440\u0430\u0432\u0438\u043b\u0430\u043c \u0432\u044b\u0432\u043e\u0434\u0430 \u0432\u0440\u0435\u043c\u0451\u043d \u0436\u0438\u0437\u043d\u0438 \u0434\u043b\u044f \u0444\u0443\u043d\u043a\u0446\u0438\u0439.<\/p>\n<p>  <\/p>\n<p>\u0422\u0443\u0442 \u043d\u0435\u0442 \u043a\u0430\u043a\u043e\u0433\u043e-\u0442\u043e \u0443\u0440\u043e\u043a\u0430 \u0438\u043b\u0438 \u043e\u0437\u0430\u0440\u0435\u043d\u0438\u044f, \u043e\u043d\u043e \u043f\u0440\u043e\u0441\u0442\u043e \u0435\u0441\u0442\u044c.<\/p>\n<p>  <\/p>\n<p><strong>\u041a\u043b\u044e\u0447\u0435\u0432\u044b\u0435 \u0432\u044b\u0432\u043e\u0434\u044b<\/strong><\/p>\n<p>  <\/p>\n<ul>\n<li>\u0443 \u043a\u0430\u0436\u0434\u043e\u0433\u043e \u044f\u0437\u044b\u043a\u0430 \u0435\u0441\u0442\u044c \u0441\u0432\u043e\u0438 \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u044b<\/li>\n<\/ul>\n<p>  <\/p>\n<h3 id=\"anchor11-static-refs-can-always-be-coerced-into-a-refsanchor-11-static-ssylki-vsegda-mozhno-privesti-k-a-ssylkam\"><a name=\"11-static-refs-can-always-be-coerced-into-a-refs\"><\/a> 11) <code>'static<\/code>-\u0441\u0441\u044b\u043b\u043a\u0438 \u0432\u0441\u0435\u0433\u0434\u0430 \u043c\u043e\u0436\u043d\u043e \u043f\u0440\u0438\u0432\u0435\u0441\u0442\u0438 \u043a <code>'a<\/code>-\u0441\u0441\u044b\u043b\u043a\u0430\u043c<\/h3>\n<p>  <\/p>\n<p>\u0420\u0430\u043d\u0435\u0435 \u044f \u043f\u043e\u043a\u0430\u0437\u0430\u043b \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0439 \u043f\u0440\u0438\u043c\u0435\u0440:<\/p>\n<p>  <\/p>\n<pre><code class=\"rust\">fn get_str&lt;'a&gt;() -&gt; &amp;'a str; \/\/ \u043e\u0431\u043e\u0431\u0449\u0451\u043d\u043d\u0430\u044f \u0432\u0435\u0440\u0441\u0438\u044f fn get_str() -&gt; &amp;'static str; \/\/ \u0432\u0435\u0440\u0441\u0438\u044f \u0441\u043e 'static<\/code><\/pre>\n<p>  <\/p>\n<p>\u041d\u0435\u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0447\u0438\u0442\u0430\u0442\u0435\u043b\u0438 \u0441\u0432\u044f\u0437\u0430\u043b\u0438\u0441\u044c \u0441\u043e \u043c\u043d\u043e\u0439, \u0447\u0442\u043e\u0431\u044b \u0441\u043f\u0440\u043e\u0441\u0438\u0442\u044c, \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u0435\u0442 \u043b\u0438 \u043d\u0430 \u043f\u0440\u0430\u043a\u0442\u0438\u043a\u0435 \u043a\u0430\u043a\u0430\u044f-\u0442\u043e \u0440\u0430\u0437\u043d\u0438\u0446\u0430 \u043c\u0435\u0436\u0434\u0443 \u044d\u0442\u0438\u043c\u0438 \u0434\u0432\u0443\u043c\u044f \u0432\u0430\u0440\u0438\u0430\u043d\u0442\u0430\u043c\u0438. \u0421\u043d\u0430\u0447\u0430\u043b\u0430 \u044f \u043d\u0435 \u0431\u044b\u043b \u0443\u0432\u0435\u0440\u0435\u043d, \u043d\u043e \u043f\u043e\u0441\u043b\u0435 \u043d\u0435\u043a\u043e\u0442\u043e\u0440\u043e\u0433\u043e \u0440\u0430\u0441\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u043d\u0438\u044f, \u0447\u0442\u043e, \u043a \u0441\u043e\u0436\u0430\u043b\u0435\u043d\u0438\u044e, \u043e\u0442\u0432\u0435\u0442 \u043d\u0430 \u044d\u0442\u043e \u0432\u043e\u043f\u0440\u043e\u0441 \u0443\u0442\u0432\u0435\u0440\u0434\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u0439, \u0440\u0430\u0437\u043d\u0438\u0446\u0430 \u0435\u0441\u0442\u044c.<\/p>\n<p>  <\/p>\n<p>\u041e\u0431\u044b\u0447\u043d\u043e, \u043a\u043e\u0433\u0434\u0430 \u043c\u044b \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u043c \u0441\u043e \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f\u043c\u0438, \u043c\u044b \u043c\u043e\u0436\u0435\u043c \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c <code>'static<\/code>-\u0441\u0441\u044b\u043b\u043a\u0438 \u0442\u0430\u043c, \u0433\u0434\u0435 \u043e\u0436\u0438\u0434\u0430\u044e\u0442\u0441\u044f <code>'a<\/code>-\u0441\u0441\u044b\u043b\u043e\u043a, \u043f\u043e\u0442\u043e\u043c\u0443 \u0447\u0442\u043e Rust \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0438 \u043f\u0440\u0438\u0432\u043e\u0434\u0438\u0442 <code>'static<\/code>-\u0441\u0441\u044b\u043b\u043a\u0438 \u043a <code>'a<\/code>-\u0441\u0441\u044b\u043b\u043a\u0430\u043c \u0437\u0430 \u043d\u0430\u0441. \u042d\u0442\u043e \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u0435\u0442 \u043d\u0430\u0448\u0435\u0439 \u0438\u043d\u0442\u0443\u0438\u0446\u0438\u0438: \u043c\u044b \u043c\u043e\u0436\u0435\u043c \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0434\u043e\u043b\u0433\u043e\u0436\u0438\u0432\u0443\u0449\u0443\u044e \u0441\u0441\u044b\u043b\u043a\u0443 \u0442\u0430\u043c, \u0433\u0434\u0435 \u043e\u0436\u0438\u0434\u0430\u0435\u0442\u0441\u044f \u0441\u0441\u044b\u043b\u043a\u0430 \u0441 \u0431\u043e\u043b\u0435\u0435 \u043a\u043e\u0440\u043e\u0442\u043a\u0438\u043c \u0432\u0440\u0435\u043c\u0435\u043d\u0435\u043c \u0436\u0438\u0437\u043d\u0438, \u0438 \u044d\u0442\u043e \u043d\u0435 \u043f\u0440\u0438\u0432\u0435\u0434\u0451\u0442 \u043d\u0438 \u043a \u043a\u0430\u043a\u0438\u043c \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u0430\u043c. \u041f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0430 \u043d\u0438\u0436\u0435, \u043a\u0430\u043a \u0438 \u043e\u0436\u0438\u0434\u0430\u043b\u043e\u0441\u044c, \u043a\u043e\u043c\u043f\u0438\u043b\u0438\u0440\u0443\u0435\u0442\u0441\u044f.<\/p>\n<p>  <\/p>\n<pre><code class=\"rust\">use rand;  fn generic_str_fn&lt;'a&gt;() -&gt; &amp;'a str {     &quot;str&quot; }  fn static_str_fn() -&gt; &amp;'static str {     &quot;str&quot; }  fn a_or_b&lt;T&gt;(a: T, b: T) -&gt; T {     if rand::random() {         a     } else {         b     } }  fn main() {     let some_string = &quot;string&quot;.to_owned();     let some_str = &amp;some_string[..];     let str_ref = a_or_b(some_str, generic_str_fn()); \/\/ \u043a\u043e\u043c\u043f\u0438\u043b\u0438\u0440\u0443\u0435\u0442\u0441\u044f     let str_ref = a_or_b(some_str, static_str_fn()); \/\/ \u043a\u043e\u043c\u043f\u0438\u043b\u0438\u0440\u0443\u0435\u0442\u0441\u044f }<\/code><\/pre>\n<p>  <\/p>\n<p>\u041e\u0434\u043d\u0430\u043a\u043e \u044d\u0442\u043e \u043f\u0440\u0438\u0432\u0435\u0434\u0435\u043d\u0438\u0435 \u043d\u0435 \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442, \u043a\u043e\u0433\u0434\u0430 \u0441\u0441\u044b\u043b\u043a\u0438 \u044f\u0432\u043b\u044f\u044e\u0442\u0441\u044f \u0447\u0430\u0441\u0442\u044c\u044e \u0441\u0438\u0433\u043d\u0430\u0442\u0443\u0440\u044b \u0444\u0443\u043d\u043a\u0446\u0438\u0438, \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u044d\u0442\u043e\u0442 \u043a\u043e\u0434 \u043d\u0435 \u043a\u043e\u043c\u043f\u0438\u043b\u0438\u0440\u0443\u0435\u0442\u0441\u044f:<\/p>\n<p>  <\/p>\n<pre><code class=\"rust\">use rand;  fn generic_str_fn&lt;'a&gt;() -&gt; &amp;'a str {     &quot;str&quot; }  fn static_str_fn() -&gt; &amp;'static str {     &quot;str&quot; }  fn a_or_b_fn&lt;T, F&gt;(a: T, b_fn: F) -&gt; T     where F: Fn() -&gt; T {     if rand::random() {         a     } else {         b_fn()     } }  fn main() {     let some_string = &quot;string&quot;.to_owned();     let some_str = &amp;some_string[..];     let str_ref = a_or_b_fn(some_str, generic_str_fn); \/\/ \u043a\u043e\u043c\u043f\u0438\u043b\u0438\u0440\u0443\u0435\u0442\u0441\u044f     let str_ref = a_or_b_fn(some_str, static_str_fn); \/\/ \u043e\u0448\u0438\u0431\u043a\u0430 \u043a\u043e\u043c\u043f\u0438\u043b\u044f\u0446\u0438\u0438 }<\/code><\/pre>\n<p>  <\/p>\n<p>\u0418 \u0432\u044b\u0434\u0430\u0451\u0442 \u044d\u0442\u0443 \u043e\u0448\u0438\u0431\u043a\u0443 \u043a\u043e\u043c\u043f\u0438\u043b\u044f\u0446\u0438\u0438:<\/p>\n<p>  <\/p>\n<pre><code class=\"rust\">error[E0597]: `some_string` does not live long enough   --&gt; src\/main.rs:23:21    | 23 |     let some_str = &amp;some_string[..];    |                     ^^^^^^^^^^^ borrowed value does not live long enough ... 25 |     let str_ref = a_or_b_fn(some_str, static_str_fn);    |                   ---------------------------------- argument requires that `some_string` is borrowed for `'static` 26 | }    | - `some_string` dropped here while still borrowed<\/code><\/pre>\n<p>  <\/p>\n<p>\u042f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u043b\u0438 \u044d\u0442\u043e \u043f\u043e\u0434\u0432\u043e\u0445\u043e\u043c \u0438\u043b\u0438 \u043d\u0435\u0442 \u2014 \u0432\u043e\u043f\u0440\u043e\u0441 \u0441\u043f\u043e\u0440\u043d\u044b\u0439, \u0442\u0430\u043a \u043a\u0430\u043a \u044d\u0442\u043e \u043d\u0435 \u043f\u0440\u043e\u0441\u0442\u043e\u0439 \u043f\u0440\u044f\u043c\u043e\u043b\u0438\u043d\u0435\u0439\u043d\u044b\u0439 \u0441\u043b\u0443\u0447\u0430\u0439 \u043f\u0440\u0438\u0432\u0435\u0434\u0435\u043d\u0438\u044f <code>&amp;'static str<\/code> \u043a <code>&amp;'a str<\/code>, \u0430 \u043f\u0440\u0438\u0432\u0435\u0434\u0435\u043d\u0438\u0435 <code>for&lt;T&gt; Fn() -&gt; &amp;'static T<\/code> \u043a <code>for&lt;'a, T&gt; Fn() -&gt; &amp;'a T<\/code>. \u041f\u0435\u0440\u0432\u043e\u0435 \u2014 \u044d\u0442\u043e \u043f\u0440\u0438\u0432\u0435\u0434\u0435\u043d\u0438\u0435 \u043c\u0435\u0436\u0434\u0443 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f\u043c\u0438, \u0430 \u0432\u0442\u043e\u0440\u043e\u0435 \u2014 \u044d\u0442\u043e \u043f\u0440\u0438\u0432\u0435\u0434\u0435\u043d\u0438\u0435 \u043c\u0435\u0436\u0434\u0443 \u0442\u0438\u043f\u0430\u043c\u0438.<\/p>\n<p>  <\/p>\n<p><strong>\u041a\u043b\u044e\u0447\u0435\u0432\u044b\u0435 \u0432\u044b\u0432\u043e\u0434\u044b<\/strong><\/p>\n<p>  <\/p>\n<ul>\n<li>\u0444\u0443\u043d\u043a\u0446\u0438\u0438 \u0441 \u0441\u0438\u0433\u043d\u0430\u0442\u0443\u0440\u0430\u043c\u0438 \u0432\u0438\u0434\u0430 <code>for&lt;'a, T&gt; fn() -&gt; &amp;'a T<\/code> \u044f\u0432\u043b\u044f\u044e\u0442\u0441\u044f \u0431\u043e\u043b\u0435\u0435 \u0433\u0438\u0431\u043a\u0438\u043c\u0438 \u0438 \u0440\u0430\u0431\u043e\u0442\u0430\u044e\u0442 \u0432 \u0431\u043e\u043b\u044c\u0448\u0435\u043c \u0447\u0438\u0441\u043b\u0435 \u0441\u043b\u0443\u0447\u0430\u0435\u0432, \u0447\u0435\u043c \u0444\u0443\u043d\u043a\u0446\u0438\u0438 \u0441 \u0441\u0438\u0433\u043d\u0430\u0442\u0443\u0440\u0430\u043c\u0438 \u0432\u0438\u0434\u0430 <code>for&lt;T&gt; fn() -&gt; &amp;'static T<\/code><\/li>\n<\/ul>\n<p>  <\/p>\n<h2 id=\"anchorconclusionanchor-zaklyuchenie\"><a name=\"conclusion\"><\/a> \u0417\u0430\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435<\/h2>\n<p>  <\/p>\n<ul>\n<li><code>T<\/code> \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u043d\u0430\u0434\u043c\u043d\u043e\u0436\u0435\u0441\u0442\u0432\u043e\u043c \u043a\u0430\u043a <code>&amp;T<\/code>, \u0442\u0430\u043a \u0438 <code>&amp;mut T<\/code><\/li>\n<li><code>&amp;T<\/code> \u0438 <code>&amp;mut T<\/code> \u044f\u0432\u043b\u044f\u044e\u0442\u0441\u044f \u043d\u0435\u043f\u0435\u0440\u0435\u0441\u0435\u043a\u0430\u044e\u0449\u0438\u043c\u0438\u0441\u044f \u043c\u043d\u043e\u0436\u0435\u0441\u0442\u0432\u0430\u043c\u0438<\/li>\n<li><code>T: 'static<\/code> \u0434\u043e\u043b\u0436\u043d\u043e \u0447\u0438\u0442\u0430\u0442\u044c\u0441\u044f, \u043a\u0430\u043a <em>\u00ab <code>T<\/code> \u043e\u0433\u0440\u0430\u043d\u0438\u0447\u0435\u043d \u0432\u0440\u0435\u043c\u0435\u043d\u0435\u043c \u0436\u0438\u0437\u043d\u0438 <code>'static<\/code>\u00bb<\/em><\/li>\n<li>\u0435\u0441\u043b\u0438 <code>T: 'static<\/code>, \u0442\u043e <code>T<\/code> \u043c\u043e\u0436\u0435\u0442 \u0431\u044b\u0442\u044c \u0437\u0430\u0438\u043c\u0441\u0442\u0432\u043e\u0432\u0430\u043d\u043d\u044b\u043c \u0442\u0438\u043f\u043e\u043c \u0441 \u0432\u0440\u0435\u043c\u0435\u043d\u0435\u043c \u0436\u0438\u0437\u043d\u0438 <code>'static<\/code> <em>\u0438\u043b\u0438<\/em> \u0432\u043b\u0430\u0434\u0435\u044e\u0449\u0438\u043c \u0442\u0438\u043f\u043e\u043c.<\/li>\n<li>\u043f\u043e\u0441\u043a\u043e\u043b\u044c\u043a\u0443 <code>T: 'static<\/code> \u0432\u043a\u043b\u044e\u0447\u0430\u0435\u0442 \u0432 \u0441\u0435\u0431\u044f \u0432\u043b\u0430\u0434\u0435\u044e\u0449\u0438\u0435 \u0442\u0438\u043f\u044b, \u044d\u0442\u043e \u043e\u0437\u043d\u0430\u0447\u0430\u0435\u0442, \u0447\u0442\u043e <code>T<\/code><br \/> \n<ul>\n<li>\u043c\u043e\u0436\u0435\u0442 \u0431\u044b\u0442\u044c \u0434\u0438\u043d\u0430\u043c\u0438\u0447\u0435\u0441\u043a\u0438 \u0441\u043e\u0437\u0434\u0430\u043d \u0432\u043e \u0432\u0440\u0435\u043c\u044f \u0438\u0441\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f<\/li>\n<li>\u043d\u0435 \u043e\u0431\u044f\u0437\u0430\u043d \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u043e\u0432\u0430\u0442\u044c \u043d\u0430 \u043f\u0440\u043e\u0442\u044f\u0436\u0435\u043d\u0438\u0438 \u0432\u0441\u0435\u0433\u043e \u0432\u0440\u0435\u043c\u0435\u043d\u0438 \u0440\u0430\u0431\u043e\u0442\u044b \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u044b<\/li>\n<li>\u043c\u043e\u0436\u0435\u0442 \u0431\u044b\u0442\u044c \u0431\u0435\u0437\u043e\u043f\u0430\u0441\u043d\u043e \u0438\u0437\u043c\u0435\u043d\u0451\u043d \u0431\u0435\u0437 \u043a\u0430\u043a\u0438\u0445-\u043b\u0438\u0431\u043e \u043e\u0433\u0440\u0430\u043d\u0438\u0447\u0435\u043d\u0438\u0439<\/li>\n<li>\u043c\u043e\u0436\u0435\u0442 \u0431\u044b\u0442\u044c \u0434\u0438\u043d\u0430\u043c\u0438\u0447\u0435\u0441\u043a\u0438 \u0443\u043d\u0438\u0447\u0442\u043e\u0436\u0435\u043d \u0432\u043e \u0432\u0440\u0435\u043c\u044f \u0438\u0441\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f<\/li>\n<li>\u043c\u043e\u0436\u0435\u0442 \u0438\u043c\u0435\u0442\u044c \u0432\u0440\u0435\u043c\u044f \u0436\u0438\u0437\u043d\u0438 \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u043b\u044c\u043d\u043e\u0439 \u043f\u0440\u043e\u0434\u043e\u043b\u0436\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u0438<\/li>\n<\/ul>\n<\/li>\n<li><code>T: 'a<\/code> \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u0431\u043e\u043b\u0435\u0435 \u043e\u0431\u0449\u0438\u043c \u0438 \u0431\u043e\u043b\u0435\u0435 \u0433\u0438\u0431\u043a\u0438\u043c \u0442\u0438\u043f\u043e\u043c, \u0447\u0435\u043c <code>&amp;'a T<\/code><\/li>\n<li><code>T: 'a<\/code> \u043f\u0440\u0438\u043d\u0438\u043c\u0430\u0435\u0442 \u0432\u043b\u0430\u0434\u0435\u044e\u0449\u0438\u0435 \u0442\u0438\u043f\u044b, \u0432\u043b\u0430\u0434\u0435\u044e\u0449\u0438\u0435 \u0442\u0438\u043f\u044b, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0441\u043e\u0434\u0435\u0440\u0436\u0430\u0442 \u0441\u0441\u044b\u043b\u043a\u0438, \u0438 \u0441\u0441\u044b\u043b\u043a\u0438<\/li>\n<li><code>&amp;'a T<\/code> \u043f\u0440\u0438\u043d\u0438\u043c\u0430\u0435\u0442 \u0442\u043e\u043b\u044c\u043a\u043e \u0441\u0441\u044b\u043b\u043a\u0438<\/li>\n<li>\u0435\u0441\u043b\u0438 <code>T: 'static<\/code>, \u0442\u043e <code>T: 'a<\/code>, \u0442\u0430\u043a \u043a\u0430\u043a <code>'static<\/code> &gt;= <code>'a<\/code> \u0434\u043b\u044f \u0432\u0441\u0435\u0445 <code>'a<\/code><\/li>\n<li>\u043f\u043e\u0447\u0442\u0438 \u0432\u0435\u0441\u044c \u043a\u043e\u0434 \u043d\u0430 Rust \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u043e\u0431\u043e\u0431\u0449\u0451\u043d\u043d\u044b\u043c \u043a\u043e\u0434\u043e\u043c, \u0438 \u043f\u043e\u0432\u0441\u044e\u0434\u0443 \u0435\u0441\u0442\u044c \u0432\u044b\u0432\u0435\u0434\u0435\u043d\u043d\u044b\u0435 \u0430\u043d\u043d\u043e\u0442\u0430\u0446\u0438\u0438 \u0432\u0440\u0435\u043c\u0451\u043d \u0436\u0438\u0437\u043d\u0438<\/li>\n<li>\u043f\u0440\u0430\u0432\u0438\u043b\u0430 \u0432\u044b\u0432\u043e\u0434\u0430 \u0432\u0440\u0435\u043c\u0451\u043d \u0436\u0438\u0437\u043d\u0438 Rust \u043d\u0435 \u0432\u0441\u0435\u0433\u0434\u0430 \u043f\u043e\u0434\u0445\u043e\u0434\u044f\u0442 \u043a \u043a\u043e\u043d\u043a\u0440\u0435\u0442\u043d\u043e\u0439 \u0441\u0438\u0442\u0443\u0430\u0446\u0438\u0438<\/li>\n<li>Rust \u043d\u0435 \u0437\u043d\u0430\u0435\u0442 \u043e \u0441\u0435\u043c\u0430\u043d\u0442\u0438\u043a\u0435 \u0432\u0430\u0448\u0435\u0439 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u044b \u0431\u043e\u043b\u044c\u0448\u0435, \u0447\u0435\u043c \u0432\u044b<\/li>\n<li>\u0434\u0430\u0432\u0430\u0439\u0442\u0435 \u0432\u0430\u0448\u0438\u043c \u0430\u043d\u043d\u043e\u0442\u0430\u0446\u0438\u044f\u043c \u0432\u0440\u0435\u043c\u0451\u043d \u0436\u0438\u0437\u043d\u0438 \u043e\u0441\u043c\u044b\u0441\u043b\u0435\u043d\u043d\u044b\u0435 \u0438\u043c\u0435\u043d\u0430<\/li>\n<li>\u0441\u0442\u0430\u0440\u0430\u0439\u0442\u0435\u0441\u044c \u043f\u043e\u043d\u0438\u043c\u0430\u0442\u044c, \u0433\u0434\u0435 \u0432\u044b \u0440\u0430\u0437\u043c\u0435\u0449\u0430\u0435\u0442\u0435 \u044f\u0432\u043d\u044b\u0435 \u0430\u043d\u043d\u043e\u0442\u0430\u0446\u0438\u0438 \u0432\u0440\u0435\u043c\u0451\u043d \u0436\u0438\u0437\u043d\u0438 \u0438 \u043f\u043e\u0447\u0435\u043c\u0443<\/li>\n<li>\u0432\u0441\u0435 \u0442\u0440\u0435\u0439\u0442-\u043e\u0431\u044a\u0435\u043a\u0442\u044b \u0438\u043c\u0435\u044e\u0442 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u043d\u044b\u0435 \u0432\u044b\u0432\u0435\u0434\u0435\u043d\u043d\u044b\u0435 \u043e\u0433\u0440\u0430\u043d\u0438\u0447\u0435\u043d\u0438\u044f \u0432\u0440\u0435\u043c\u0451\u043d \u0436\u0438\u0437\u043d\u0438 \u043f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e<\/li>\n<li>\u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u044f \u043e\u0431 \u043e\u0448\u0438\u0431\u043a\u0430\u0445 \u043a\u043e\u043c\u043f\u0438\u043b\u044f\u0446\u0438\u0438 Rust \u043f\u0440\u0435\u0434\u043b\u0430\u0433\u0430\u044e\u0442 \u0438\u0441\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u044f, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043f\u0440\u0438\u0432\u0435\u0434\u0443\u0442 \u043a \u0443\u0441\u043f\u0435\u0448\u043d\u043e\u0439 \u043a\u043e\u043c\u043f\u0438\u043b\u044f\u0446\u0438\u0438 \u0432\u0430\u0448\u0435\u0439 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u044b, \u043d\u043e \u044d\u0442\u043e \u043d\u0435 \u0442\u043e \u0436\u0435 \u0441\u0430\u043c\u043e\u0435, \u0447\u0442\u043e \u0438 \u0438\u0441\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u044f, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0437\u0430\u0441\u0442\u0430\u0432\u044f\u0442 \u0432\u0430\u0448\u0443 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0443 \u0443\u0441\u043f\u0435\u0448\u043d\u043e \u043a\u043e\u043c\u043f\u0438\u043b\u0438\u0440\u043e\u0432\u0430\u0442\u044c\u0441\u044f <em>\u0438 \u043e\u0434\u043d\u043e\u0432\u0440\u0435\u043c\u0435\u043d\u043d\u043e<\/em> \u043d\u0430\u0438\u043b\u0443\u0447\u0448\u0438\u043c \u043e\u0431\u0440\u0430\u0437\u043e\u043c \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u044e\u0442 \u0442\u0440\u0435\u0431\u043e\u0432\u0430\u043d\u0438\u044f\u043c \u0432\u0430\u0448\u0435\u0439 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u044b.<\/li>\n<li>\u0432\u0440\u0435\u043c\u0435\u043d\u0430 \u0436\u0438\u0437\u043d\u0438 \u043f\u0440\u043e\u0432\u0435\u0440\u044f\u0435\u0442\u0441\u044f \u0441\u0442\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0438 \u043d\u0430 \u044d\u0442\u0430\u043f\u0435 \u043a\u043e\u043c\u043f\u0438\u043b\u044f\u0446\u0438\u0438<\/li>\n<li>\u0432\u0440\u0435\u043c\u0435\u043d\u0430 \u0436\u0438\u0437\u043d\u0438 \u043d\u0435 \u043c\u043e\u0433\u0443\u0442 \u0440\u0430\u0441\u0442\u0438, \u0443\u043c\u0435\u043d\u044c\u0448\u0430\u0442\u044c\u0441\u044f \u0438\u043b\u0438 \u0438\u0437\u043c\u0435\u043d\u044f\u0442\u044c\u0441\u044f \u043a\u0430\u043a\u0438\u043c-\u043b\u0438\u0431\u043e \u043e\u0431\u0440\u0430\u0437\u043e\u043c \u0432 \u0440\u0430\u043d\u0442\u0430\u0439\u043c\u0435<\/li>\n<li>\u0430\u043d\u0430\u043b\u0438\u0437\u0430\u0442\u043e\u0440 \u0437\u0430\u0438\u043c\u0441\u0442\u0432\u043e\u0432\u0430\u043d\u0438\u0439 Rust \u0432\u0441\u0435\u0433\u0434\u0430 \u0432\u044b\u0431\u0438\u0440\u0430\u0435\u0442 \u043d\u0430\u0438\u043c\u0435\u043d\u044c\u0448\u0435\u0435 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0435 \u0432\u0440\u0435\u043c\u044f \u0436\u0438\u0437\u043d\u0438 \u0434\u043b\u044f \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u043e\u0439, \u043f\u0440\u0435\u0434\u043f\u043e\u043b\u0430\u0433\u0430\u044f, \u0447\u0442\u043e \u0432\u0441\u0435 \u043f\u0443\u0442\u0438 \u0438\u0441\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f \u043a\u043e\u0434\u0430 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u044b<\/li>\n<li>\u0441\u0442\u0430\u0440\u0430\u0439\u0442\u0435\u0441\u044c \u043d\u0435 \u043f\u0435\u0440\u0435\u0437\u0430\u0438\u043c\u0441\u0442\u0432\u043e\u0432\u0430\u0442\u044c \u0438\u0437\u043c\u0435\u043d\u044f\u0435\u043c\u044b\u0435 \u0441\u0441\u044b\u043b\u043a\u0438 \u043a\u0430\u043a \u0440\u0430\u0437\u0434\u0435\u043b\u044f\u0435\u043c\u044b\u0435, \u0438\u043d\u0430\u0447\u0435 \u0432\u044b \u043e\u0431 \u044d\u0442\u043e\u043c \u043f\u043e\u0436\u0430\u043b\u0435\u0435\u0442\u0435<\/li>\n<li>\u043f\u043e\u0432\u0442\u043e\u0440\u043d\u043e\u0435 \u0437\u0430\u0438\u043c\u0441\u0442\u0432\u043e\u0432\u0430\u043d\u0438\u0435 mut-\u0441\u0441\u044b\u043b\u043a\u0438 \u043d\u0435 \u0437\u0430\u043a\u0430\u043d\u0447\u0438\u0432\u0430\u0435\u0442 \u0435\u0451 \u0432\u0440\u0435\u043c\u044f \u0436\u0438\u0437\u043d\u0438, \u0434\u0430\u0436\u0435 \u0435\u0441\u043b\u0438 \u0441\u0430\u043c\u0430 \u0441\u0441\u044b\u043b\u043a\u0430 \u0443\u043d\u0438\u0447\u0442\u043e\u0436\u0435\u043d\u0430<\/li>\n<li>\u0443 \u043a\u0430\u0436\u0434\u043e\u0433\u043e \u044f\u0437\u044b\u043a\u0430 \u0435\u0441\u0442\u044c \u0441\u0432\u043e\u0438 \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u044b<\/li>\n<li>\u0444\u0443\u043d\u043a\u0446\u0438\u0438 \u0441 \u0441\u0438\u0433\u043d\u0430\u0442\u0443\u0440\u0430\u043c\u0438 \u0432\u0438\u0434\u0430 <code>for&lt;'a, T&gt; fn() -&gt; &amp;'a T<\/code> \u044f\u0432\u043b\u044f\u044e\u0442\u0441\u044f \u0431\u043e\u043b\u0435\u0435 \u0433\u0438\u0431\u043a\u0438\u043c\u0438 \u0438 \u0440\u0430\u0431\u043e\u0442\u0430\u044e\u0442 \u0432 \u0431\u043e\u043b\u044c\u0448\u0435\u043c \u0447\u0438\u0441\u043b\u0435 \u0441\u043b\u0443\u0447\u0430\u0435\u0432, \u0447\u0435\u043c \u0444\u0443\u043d\u043a\u0446\u0438\u0438 \u0441 \u0441\u0438\u0433\u043d\u0430\u0442\u0443\u0440\u0430\u043c\u0438 \u0432\u0438\u0434\u0430 <code>for&lt;T&gt; fn() -&gt; &amp;'static T<\/code><\/li>\n<\/ul>\n<p>  <\/p>\n<h2 id=\"anchordiscussanchor-obsuzhdenie\"><a name=\"discuss\"><\/a> \u041e\u0431\u0441\u0443\u0436\u0434\u0435\u043d\u0438\u0435<\/h2>\n<p>  <\/p>\n<p>\u041e\u0431\u0441\u0443\u0434\u0438\u0442\u0435 \u044d\u0442\u0443 \u0441\u0442\u0430\u0442\u044c\u044e \u043d\u0430<\/p>\n<p>  <\/p>\n<ul>\n<li><a href=\"https:\/\/www.reddit.com\/r\/learnrust\/comments\/gmrcrq\/common_rust_lifetime_misconceptions\/\" rel=\"nofollow\">\u0441\u0443\u0431\u0440\u0435\u0434\u0434\u0438\u0442\u0435 learnrust<\/a><\/li>\n<li><a href=\"https:\/\/users.rust-lang.org\/t\/blog-post-common-rust-lifetime-misconceptions\/42950\" rel=\"nofollow\">\u043e\u0444\u0438\u0446\u0438\u0430\u043b\u044c\u043d\u043e\u043c \u0444\u043e\u0440\u0443\u043c\u0435 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u0435\u0439 Rust<\/a><\/li>\n<li><a href=\"https:\/\/twitter.com\/pretzelhammer\/status\/1263505856903163910\" rel=\"nofollow\">Twitter<\/a><\/li>\n<li><a href=\"https:\/\/www.reddit.com\/r\/rust\/comments\/golrsx\/common_rust_lifetime_misconceptions\/\" rel=\"nofollow\">\u0441\u0443\u0431\u0440\u0435\u0434\u0434\u0438\u0442\u0435 Rust<\/a><\/li>\n<li><a href=\"https:\/\/news.ycombinator.com\/item?id=23279731\" rel=\"nofollow\">Hackernews<\/a><\/li>\n<\/ul>\n<p>  <\/p>\n<h2 id=\"anchorfollowanchor-kontakty\"><a name=\"follow\"><\/a> \u041a\u043e\u043d\u0442\u0430\u043a\u0442\u044b<\/h2>\n<p>  <\/p>\n<p><a href=\"https:\/\/twitter.com\/pretzelhammer\" rel=\"nofollow\">\u041f\u043e\u0434\u043f\u0438\u0441\u044b\u0432\u0430\u0439\u0442\u0435\u0441\u044c \u043d\u0430 pretzelhammer \u0432 Twitter<\/a>, \u0447\u0442\u043e\u0431\u044b \u043f\u043e\u043b\u0443\u0447\u0430\u0442\u044c \u0443\u0432\u0435\u0434\u043e\u043c\u043b\u0435\u043d\u0438\u044f \u043e \u0431\u0443\u0434\u0443\u0449\u0438\u0445 \u043f\u0443\u0431\u043b\u0438\u043a\u0430\u0446\u0438\u044f\u0445 \u0432 \u0431\u043b\u043e\u0433\u0435!<\/p>\n<p>  <\/p>\n<h2 id=\"anchorfurther-readinganchor-dalneyshee-chtenie\"><a name=\"further-reading\"><\/a> \u0414\u0430\u043b\u044c\u043d\u0435\u0439\u0448\u0435\u0435 \u0447\u0442\u0435\u043d\u0438\u0435<\/h2>\n<p>  <\/p>\n<p><a href=\"https:\/\/github.com\/pretzelhammer\/rust-blog\/blob\/master\/posts\/learning-rust-in-2020.md\" rel=\"nofollow\">\u0418\u0437\u0443\u0447\u0435\u043d\u0438\u0435 Rust \u0432 2020 \u0433\u043e\u0434\u0443<\/a><\/p>\n<p>  <\/p>\n<p><em>\u041f\u0435\u0440\u0435\u0432\u043e\u0434\u0447\u0438\u043a \u0432\u044b\u0440\u0430\u0436\u0430\u0435\u0442 \u043f\u0440\u0438\u0437\u043d\u0430\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u044c \u0437\u0430 \u043f\u043e\u043c\u043e\u0449\u044c \u0432 \u043f\u0435\u0440\u0435\u0432\u043e\u0434\u0435 \u0441\u0442\u0430\u0442\u044c\u0438 \u0440\u0443\u0441\u0441\u043a\u043e\u044f\u0437\u044b\u0447\u043d\u043e\u043c\u0443 \u0441\u043e\u043e\u0431\u0449\u0435\u0441\u0442\u0432\u043e Rust, \u0432 \u043e\u0441\u043e\u0431\u0435\u043d\u043d\u043e\u0441\u0442\u0438 <a href=\"https:\/\/habr.com\/ru\/users\/nlinker\/\" class=\"user_link\">nlinker<\/a>.<\/em><\/p>\n<\/div>\n<p> \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\/post\/515034\/\"> https:\/\/habr.com\/ru\/post\/515034\/<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"\n<div class=\"post__text post__text-html post__text_v1\" id=\"post-content-body\" data-io-article-url=\"https:\/\/habr.com\/ru\/post\/515034\/\">\n<p><em>(\u043f\u0440\u0438\u043c. \u043f\u0435\u0440\u0435\u0432\u043e\u0434\u0447\u0438\u043a\u0430: \u0432\u0440\u0435\u043c\u0435\u043d\u0430 \u0436\u0438\u0437\u043d\u0438 (lifetimes) \u2014 \u044d\u0442\u043e \u043e\u0434\u043d\u0430 \u0438\u0437 \u0441\u0430\u043c\u044b\u0445 \u0437\u0430\u043f\u0443\u0442\u0430\u043d\u043d\u044b\u0445 \u0432\u0435\u0449\u0435\u0439 \u0432 Rust, \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u0447\u0430\u0441\u0442\u043e \u0432\u044b\u0437\u044b\u0432\u0430\u0435\u0442 \u0437\u0430\u0442\u0440\u0443\u0434\u043d\u0435\u043d\u0438\u0435 \u0443 \u043d\u043e\u0432\u0438\u0447\u043a\u043e\u0432, \u0434\u0430\u0436\u0435 \u043d\u0435 \u0441\u043c\u043e\u0442\u0440\u044f \u043d\u0430 <a href=\"https:\/\/doc.rust-lang.org\/book\" rel=\"nofollow\">\u043e\u0444\u0438\u0446\u0438\u0430\u043b\u044c\u043d\u0443\u044e \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u044e<\/a>. \u0420\u0430\u0437\u044a\u044f\u0441\u043d\u0435\u043d\u0438\u044f \u043f\u043e \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u044b\u043c \u0430\u0441\u043f\u0435\u043a\u0442\u0430\u043c \u0432\u0440\u0435\u043c\u0451\u043d \u0436\u0438\u0437\u043d\u0438 \u0435\u0441\u0442\u044c, \u043d\u043e \u043e\u043d\u0438 \u0432\u0441\u0435 \u0440\u0430\u0437\u0431\u0440\u043e\u0441\u0430\u043d\u044b \u043f\u043e \u0440\u0430\u0437\u043d\u044b\u043c \u0438\u0441\u0442\u043e\u0447\u043d\u0438\u043a\u0430\u043c \u0438 \u043e\u0442\u0432\u0435\u0442\u0430\u043c \u043d\u0430 Stack Overflow. \u0410\u0432\u0442\u043e\u0440 \u0441\u0442\u0430\u0442\u044c\u0438 \u0441\u043e\u0431\u0440\u0430\u043b \u0432 \u043e\u0434\u043d\u043e\u043c \u043c\u0435\u0441\u0442\u0435 \u0438 \u0440\u0430\u0437\u044a\u044f\u0441\u043d\u0438\u043b \u043c\u043d\u043e\u0436\u0435\u0441\u0442\u0432\u043e \u0441\u0432\u044f\u0437\u0430\u043d\u043d\u044b\u0445 \u0441 \u0432\u0440\u0435\u043c\u0435\u043d\u0430\u043c\u0438 \u0436\u0438\u0437\u043d\u0438 \u0432\u043e\u043f\u0440\u043e\u0441\u043e\u0432, \u0447\u0442\u043e \u0438 \u0434\u0435\u043b\u0430\u0435\u0442 \u044d\u0442\u0443 \u0441\u0442\u0430\u0442\u044c\u044e \u0441\u0442\u043e\u043b\u044c \u0446\u0435\u043d\u043d\u043e\u0439 (\u044f \u0438 \u0441\u0430\u043c \u043f\u043e\u0447\u0435\u0440\u043f\u043d\u0443\u043b \u043d\u043e\u0432\u043e\u0435 \u0434\u043b\u044f \u0441\u0435\u0431\u044f \u043e\u0442\u0441\u044e\u0434\u0430). \u042f \u0440\u0435\u0448\u0438\u043b \u043f\u0435\u0440\u0435\u0432\u0435\u0441\u0442\u0438 \u0435\u0451, \u0447\u0442\u043e\u0431\u044b \u0434\u0430\u0442\u044c \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u044c \u043f\u0440\u043e\u0447\u0438\u0442\u0430\u0442\u044c \u0435\u0451 \u0442\u0435\u043c, \u043a\u0442\u043e \u043d\u0435 \u0432\u043b\u0430\u0434\u0435\u0435\u0442 \u0430\u043d\u0433\u043b\u0438\u0439\u0441\u043a\u0438\u043c \u0432 \u0434\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e\u0439 \u0441\u0442\u0435\u043f\u0435\u043d\u0438, \u0447\u0442\u043e\u0431\u044b \u0441\u0432\u043e\u0431\u043e\u0434\u043d\u043e \u0447\u0438\u0442\u0430\u0442\u044c \u043e\u0440\u0438\u0433\u0438\u043d\u0430\u043b, \u0430 \u0442\u0430\u043a\u0436\u0435 \u0434\u043b\u044f \u0442\u043e\u0433\u043e, \u0447\u0442\u043e\u0431\u044b \u043f\u043e\u0432\u044b\u0441\u0438\u0442\u044c \u0438\u0437\u0432\u0435\u0441\u0442\u043d\u043e\u0441\u0442\u044c \u044d\u0442\u043e\u0439 \u0441\u0442\u0430\u0442\u044c\u0438 \u0441\u0440\u0435\u0434\u0438 \u0440\u0443\u0441\u0441\u043a\u043e\u044f\u0437\u044b\u0447\u043d\u043e\u0433\u043e Rust-\u0441\u043e\u043e\u0431\u0449\u0435\u0441\u0442\u0432\u0430)<\/em><\/p>\n<p>  <\/p>\n<p><em>19 \u043c\u0430\u044f 2020 \u0433. \u00b7 37 \u043c\u0438\u043d\u0443\u0442 \u00b7 #rust \u00b7 # lifetimes<\/em><\/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-308421","post","type-post","status-publish","format-standard","hentry"],"_links":{"self":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/308421","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=308421"}],"version-history":[{"count":0,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/308421\/revisions"}],"wp:attachment":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=308421"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=308421"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=308421"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}