{"id":277997,"date":"2016-04-11T01:10:03","date_gmt":"2016-04-10T21:10:03","guid":{"rendered":"http:\/\/savepearlharbor.com\/?p=277997"},"modified":"-0001-11-30T00:00:00","modified_gmt":"-0001-11-29T21:00:00","slug":"","status":"publish","type":"post","link":"https:\/\/savepearlharbor.com\/?p=277997","title":{"rendered":"man!(C =&gt; D =&gt; Rust)"},"content":{"rendered":"\n<p><a href=\"https:\/\/habrahabr.ru\/post\/280642\/\">\u041f\u0440\u0435\u0434\u044b\u0434\u0443\u0449\u0443\u044e \u0441\u0442\u0430\u0442\u044c\u044e<\/a> \u0432\u043e\u0441\u043f\u0440\u0438\u043d\u044f\u043b\u0438 \u043b\u0443\u0447\u0448\u0435, \u0447\u0435\u043c \u044f \u043e\u0436\u0438\u0434\u0430\u043b, \u0442\u0430\u043a \u0447\u0442\u043e \u0440\u0435\u0448\u0438\u043b\u0441\u044f \u043d\u0430 \u043f\u0440\u043e\u0434\u043e\u043b\u0436\u0435\u043d\u0438\u0435 \u044d\u043a\u0441\u043f\u0435\u0440\u0438\u043c\u0435\u043d\u0442\u0430. \u042d\u0442\u043e \u0441\u0432\u043e\u0435\u043e\u0431\u0440\u0430\u0437\u043d\u044b\u0439 \u043e\u0442\u0432\u0435\u0442 \u043d\u0430 <a href=\"https:\/\/habrahabr.ru\/post\/276227\/\">\u043f\u0435\u0440\u0435\u0432\u043e\u0434 \u0441\u0442\u0430\u0442\u044c\u0438<\/a> <a href=\"http:\/\/dlang.org\/ctod.html\">Programming in D for C Programmers<\/a> \u0437\u0430 \u0430\u0432\u0442\u043e\u0440\u0441\u0442\u0432\u043e\u043c \u0414\u043c\u0438\u0442\u0440\u0438\u044f aka  <a href=\"https:\/\/habrahabr.ru\/users\/vintage\/\" class=\"user_link\">vintage<\/a>. \u041a\u0430\u043a \u043c\u043d\u0435 \u043a\u0430\u0436\u0435\u0442\u0441\u044f, \u0432 \u043e\u0431\u043b\u0430\u0441\u0442\u0438 \u043f\u0440\u0438\u043c\u0435\u043d\u0435\u043d\u0438\u044f C Rust \u0431\u043e\u043b\u0435\u0435 \u0443\u043c\u0435\u0441\u0442\u0435\u043d, \u0447\u0435\u043c \u0437\u0430\u043c\u0435\u043d\u0430 Go, \u043a\u0430\u043a \u043f\u0440\u0435\u0434\u043f\u043e\u043b\u0430\u0433\u0430\u043b\u043e\u0441\u044c \u0432 \u043f\u0440\u043e\u0448\u043b\u043e\u0439 \u0441\u0442\u0430\u0442\u044c\u0435. \u0422\u0435\u043c \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u043d\u0435\u0435 \u0431\u0443\u0434\u0435\u0442 \u0441\u0440\u0430\u0432\u043d\u0438\u0442\u044c. \u041e\u043f\u044f\u0442\u044c \u0442\u0430\u043a\u0438, \u043a\u043e\u0434 \u043d\u0430 \u0421 \u043f\u0440\u0438\u0432\u043e\u0434\u0438\u0442\u044c \u043d\u0435 \u0431\u0443\u0434\u0443, \u0442\u0435\u043c \u0431\u043e\u043b\u0435\u0435 \u0447\u0442\u043e \u0430\u043d\u0430\u043b\u043e\u0433 \u043d\u0430 D \u0432\u0441\u0451 \u0440\u0430\u0432\u043d\u043e \u0441\u043c\u043e\u0442\u0440\u0438\u0442\u0441\u044f \u043b\u0430\u043a\u043e\u043d\u0438\u0447\u043d\u0435\u0435.<\/p>\n<p><a name=\"habracut\"><\/a><\/p>\n<h4>\u041f\u043e\u043b\u0443\u0447\u0430\u0435\u043c \u0440\u0430\u0437\u043c\u0435\u0440 \u0442\u0438\u043f\u0430 \u0432 \u0431\u0430\u0439\u0442\u0430\u0445<\/h4>\n<p>  <\/p>\n<p>\u041d\u0430\u043f\u043e\u043c\u043d\u044e, \u0447\u0442\u043e \u0432 \u0421 (\u0438 \u0432 \u0421++) \u0434\u043b\u044f \u044d\u0442\u043e\u0439 \u0446\u0435\u043b\u0438 \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u0435\u0442 \u0441\u043f\u0435\u0446\u0438\u0430\u043b\u044c\u043d\u044b\u0439 \u043e\u043f\u0435\u0440\u0430\u0442\u043e\u0440 <code>sizeof<\/code>, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043c\u043e\u0436\u0435\u0442 \u043f\u0440\u0438\u043c\u0435\u043d\u044f\u0442\u044c\u0441\u044f \u043a\u0430\u043a \u043a \u0442\u0438\u043f\u0430\u043c, \u0442\u0430\u043a \u0438 \u043a \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u043c. \u0412 D \u0436\u0435 \u0440\u0430\u0437\u043c\u0435\u0440 \u0434\u043e\u0441\u0442\u0443\u043f\u0435\u043d \u0447\u0435\u0440\u0435\u0437 \u0441\u0432\u043e\u0439\u0441\u0442\u0432\u043e (\u043a\u043e\u0442\u043e\u0440\u043e\u0435 \u0442\u043e\u0436\u0435 \u043c\u043e\u0436\u043d\u043e \u043f\u0440\u0438\u043c\u0435\u043d\u044f\u0442\u044c \u0438 \u043a \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u043c):<\/p>\n<p>  <\/p>\n<pre><code>int.sizeof (char*).sizeof double.sizeof Foo.sizeof<\/code><\/pre>\n<p>  <\/p>\n<p>\u0412 Rust \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f \u0444\u0443\u043d\u043a\u0446\u0438\u044f, \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u043e\u0431\u0440\u0430\u0449\u0430\u0435\u0442\u0441\u044f \u043a \u0432\u043d\u0443\u0442\u0440\u0435\u043d\u043d\u043e\u0441\u0442\u044f\u043c \u043a\u043e\u043c\u043f\u0438\u043b\u044f\u0442\u043e\u0440\u0430 (\u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u044e\u0449\u0435\u043c\u0443 <a href=\"https:\/\/doc.rust-lang.org\/std\/intrinsics\/index.html\">intrinsic<\/a>):<\/p>\n<p>  <\/p>\n<pre><code class=\"rust\">size_of::&lt;i32&gt;() size_of::&lt;*const i8&gt;() size_of::&lt;f64&gt;() size_of::&lt;Foo&gt;()<\/code><\/pre>\n<p>  <\/p>\n<p>\u041f\u0440\u0438 \u044d\u0442\u043e\u043c, \u043f\u043e \u043f\u0440\u0438\u0447\u0438\u043d\u0435 \u043e\u0442\u0441\u0443\u0442\u0441\u0442\u0432\u0438\u044f \u043f\u0435\u0440\u0435\u0433\u0440\u0443\u0437\u043a\u0438 \u0444\u0443\u043d\u043a\u0446\u0438\u0439, \u0434\u043b\u044f \u043f\u043e\u043b\u0443\u0447\u0435\u043d\u0438\u044f \u0440\u0430\u0437\u043c\u0435\u0440\u0430 \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0445 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f \u0434\u0440\u0443\u0433\u0430\u044f \u0444\u0443\u043d\u043a\u0446\u0438\u044f \u2014 <code>size_of_val<\/code>. \u0412\u043e\u0437\u043c\u043e\u0436\u043d\u043e, \u0442\u0430\u043a\u043e\u0435 \u0440\u0430\u0437\u0434\u0435\u043b\u0435\u043d\u0438\u0435 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u043c\u0435\u043d\u0435\u0435 \u0443\u0434\u043e\u0431\u043d\u043e, \u0437\u0430\u0442\u043e \u043d\u0435 \u043f\u0440\u0438\u0445\u043e\u0434\u0438\u0442\u0441\u044f \u0432\u0432\u043e\u0434\u0438\u0442\u044c \u0441\u043f\u0435\u0446\u0438\u0430\u043b\u044c\u043d\u044b\u0435 \u043a\u043b\u044e\u0447\u0435\u0432\u044b\u0435 \u0441\u043b\u043e\u0432\u0430 \u2014 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044e\u0442\u0441\u044f \u043e\u0431\u044b\u0447\u043d\u044b\u0435 \u044f\u0437\u044b\u043a\u043e\u0432\u044b\u0435 \u043c\u0435\u0445\u0430\u043d\u0438\u0437\u043c\u044b:<\/p>\n<p>  <\/p>\n<pre><code class=\"rust\">let a = 10i32; println!(&quot;{}&quot;, size_of_val(&amp;a));<\/code><\/pre>\n<p>  <\/p>\n<p>\u0417\u0430\u0431\u0430\u0432\u043d\u044b\u0439 \u043d\u044e\u0430\u043d\u0441: \u0432 Rust \u043f\u0443\u0441\u0442\u044b\u0435 \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u044b (\u0442\u0430\u043a\u0438\u0435 \u043a\u0430\u043a Foo \u0438\u0437 \u043f\u0440\u0438\u043c\u0435\u0440\u0430) \u0437\u0430\u043d\u0438\u043c\u0430\u044e\u0442 0 \u0431\u0430\u0439\u0442, \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0435\u043d\u043d\u043e \u043c\u0430\u0441\u0441\u0438\u0432 \u043b\u044e\u0431\u043e\u0433\u043e \u0440\u0430\u0437\u043c\u0435\u0440\u0430 \u0442\u0430\u043a\u0438\u0445 \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440 \u0442\u043e\u0436\u0435 \u0431\u0443\u0434\u0435\u0442 \u0437\u0430\u043d\u0438\u043c\u0430\u0442\u044c 0 \u0431\u0430\u0439\u0442.<br \/>  <a href=\"http:\/\/is.gd\/s4Y5ay\">[\u041f\u043e\u0438\u0433\u0440\u0430\u0442\u044c\u0441\u044f \u0441 \u043a\u043e\u0434\u043e\u043c]<\/a><\/p>\n<p>  <\/p>\n<h4>\u041f\u043e\u043b\u0443\u0447\u0430\u0435\u043c \u043c\u0430\u043a\u0441\u0438\u043c\u0430\u043b\u044c\u043d\u043e\u0435 \u0438 \u043c\u0438\u043d\u0438\u043c\u0430\u043b\u044c\u043d\u043e\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u0442\u0438\u043f\u0430<\/h4>\n<p>  <\/p>\n<p>\u0412 D, \u043e\u043f\u044f\u0442\u044c-\u0442\u0430\u043a\u0438, \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044e\u0442\u0441\u044f \u0441\u0432\u043e\u0439\u0441\u0442\u0432\u0430 \u0442\u0438\u043f\u043e\u0432:<\/p>\n<p>  <\/p>\n<pre><code>char.max char.min ulong.max double.min_normal<\/code><\/pre>\n<p>  <\/p>\n<p>\u0412 Rust \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044e\u0442\u0441\u044f \u0421-\u043f\u043e\u0434\u043e\u0431\u043d\u044b\u0435 \u043a\u043e\u043d\u0441\u0442\u0430\u043d\u0442\u044b:<\/p>\n<p>  <\/p>\n<pre><code class=\"rust\">i8::MAX i8::MIN u64::MAX f64::MIN<\/code><\/pre>\n<p>  <\/p>\n<p><a href=\"http:\/\/is.gd\/qxj1wG\">[\u0417\u0430\u043f\u0443\u0441\u0442\u0438\u0442\u044c]<\/a><\/p>\n<p>  <\/p>\n<h4>\u0422\u0430\u0431\u043b\u0438\u0446\u0430 \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0438\u044f \u0442\u0438\u043f\u043e\u0432<\/h4>\n<p>  <\/p>\n<pre><code>C                         D          Rust ----------------------------------------------------- bool                      bool       bool char                      char signed char               char       i8 unsigned char             ubyte      u8 short                     short      i16 unsigned short            ushort     u16 wchar_t                   wchar int                       int        i32 unsigned                  uint       u32 long                      int        i32 unsigned long             uint       u32 long long                 long       i64 unsigned long long        ulong      u64 float                     float      f32 double                    double     f64 long double               real _Imaginary long double    ireal _Complex long double      creal<\/code><\/pre>\n<p>  <\/p>\n<p>\u0421\u0440\u0430\u0432\u043d\u0435\u043d\u0438\u0435 \u043d\u0435 \u0441\u043e\u0432\u0441\u0435\u043c \u043f\u0440\u0430\u0432\u0438\u043b\u044c\u043d\u043e\u0435, \u0442\u0430\u043a \u043a\u0430\u043a \u0432 \u0421 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044e\u0442\u0441\u044f \u043f\u043b\u0430\u0442\u0444\u043e\u0440\u043c\u043e\u0437\u0430\u0432\u0438\u0441\u0438\u043c\u044b\u0435 \u0442\u0438\u043f\u044b, \u0430 \u0432 D \u043d\u0430\u043e\u0431\u043e\u0440\u043e\u0442 \u2014 \u0444\u0438\u043a\u0441\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u043e\u0433\u043e \u0440\u0430\u0437\u043c\u0435\u0440\u0430. \u0414\u043b\u044f Rust \u043f\u043e\u0434\u0431\u0438\u0440\u0430\u043b \u0438\u043c\u0435\u043d\u043d\u043e \u0430\u043d\u0430\u043b\u043e\u0433\u0438 \u0444\u0438\u043a\u0441\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u043e\u0433\u043e \u0440\u0430\u0437\u043c\u0435\u0440\u0430.<\/p>\n<p>  <\/p>\n<h4>\u041e\u0441\u043e\u0431\u044b\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u0447\u0438\u0441\u0435\u043b \u0441 \u043f\u043b\u0430\u0432\u0430\u044e\u0449\u0435\u0439 \u0442\u043e\u0447\u043a\u043e\u0439<\/h4>\n<p>  <\/p>\n<pre><code>double.nan double.infinity double.dig double.epsilon double.mant_dig double.max_10_exp double.max_exp double.min_10_exp double.min_exp<\/code><\/pre>\n<p>  <\/p>\n<pre><code class=\"rust\">f64::NAN f64::INFINITY f64::DIGITS f64::EPSILON f64::MANTISSA_DIGITS f64::MAX_10_EXP f64::MAX_EXP f64::MIN_10_EXP f64::MIN_EXP<\/code><\/pre>\n<p>  <\/p>\n<p>\u041a\u0430\u043a \u0432\u0438\u0434\u0438\u043c, \u0432 Rust \u0441\u043d\u043e\u0432\u0430 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044e\u0442\u0441\u044f \u043a\u043e\u043d\u0441\u0442\u0430\u043d\u0442\u044b, \u043a\u043e\u0442\u043e\u0440\u044b\u0435, \u043a\u0441\u0442\u0430\u0442\u0438, \u043f\u0440\u0438\u043d\u044f\u0442\u043e \u043f\u0438\u0441\u0430\u0442\u044c \u0432 \u0432\u0435\u0440\u0445\u043d\u0435\u043c \u0440\u0435\u0433\u0438\u0441\u0442\u0440\u0435.<\/p>\n<p>  <\/p>\n<h4>\u041e\u0441\u0442\u0430\u0442\u043e\u043a \u043e\u0442 \u0434\u0435\u043b\u0435\u043d\u0438\u044f \u0432\u0435\u0449\u0435\u0441\u0442\u0432\u0435\u043d\u043d\u044b\u0445 \u0447\u0438\u0441\u0435\u043b<\/h4>\n<p>  <\/p>\n<p>\u0422\u0443\u0442 \u043d\u0438\u043a\u0430\u043a\u0438\u0445 \u043e\u0442\u043a\u0440\u043e\u0432\u0435\u043d\u0438\u0439 \u2014 \u0432 Rust, \u043a\u0430\u043a \u0438 \u0432 D, \u0438\u043c\u0435\u0435\u0442\u0441\u044f <a href=\"https:\/\/doc.rust-lang.org\/std\/ops\/trait.Rem.html\">\u043e\u043f\u0435\u0440\u0430\u0442\u043e\u0440 %<\/a>.<\/p>\n<p>  <\/p>\n<h4>\u041e\u0431\u0440\u0430\u0431\u043e\u0442\u043a\u0430 NaN \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0439<\/h4>\n<p>  <\/p>\n<p>\u0418 \u0432 D, \u0438 \u0432 Rust \u0441\u0440\u0430\u0432\u043d\u0435\u043d\u0438\u0435 \u0441 NaN \u0434\u0430\u0441\u0442 \u0432 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u0435 <code>false<\/code>.<\/p>\n<p>  <\/p>\n<pre><code class=\"rust\">let x = 1f64; let y = NAN; println!(&quot;{}&quot;, x &lt; y);  \/\/ false println!(&quot;{}&quot;, y &lt; x);  \/\/ false println!(&quot;{}&quot;, x == y); \/\/ false<\/code><\/pre>\n<p>  <\/p>\n<p><a href=\"http:\/\/is.gd\/syDu0Y\">[\u0417\u0430\u043f\u0443\u0441\u0442\u0438\u0442\u044c]<\/a><\/p>\n<p>  <\/p>\n<h4>\u0410\u0441\u0435\u0440\u0442\u044b \u2014 \u043f\u043e\u043b\u0435\u0437\u043d\u044b\u0439 \u043c\u0435\u0445\u0430\u043d\u0438\u0437\u043c \u0432\u044b\u044f\u0432\u043b\u0435\u043d\u0438\u044f \u043e\u0448\u0438\u0431\u043e\u043a<\/h4>\n<p>  <\/p>\n<p>\u041e\u0431\u0430 \u044f\u0437\u044b\u043a\u0430 \u043f\u0440\u0435\u0434\u043e\u0441\u0442\u0430\u0432\u043b\u044f\u044e\u0442 \u0430\u0441\u0435\u0440\u0442\u044b &quot;\u0438\u0437 \u043a\u043e\u0440\u043e\u0431\u043a\u0438&quot;, \u043d\u043e \u0432 D \u043e\u043d\u0438 \u044f\u0432\u043b\u044f\u044e\u0442\u0441\u044f \u0441\u043f\u0435\u0446\u0438\u0430\u043b\u044c\u043d\u043e\u0439 \u044f\u0437\u044b\u043a\u043e\u0432\u043e\u0439 \u043a\u043e\u043d\u0441\u0442\u0440\u0443\u043a\u0446\u0438\u0435\u0439:<\/p>\n<p>  <\/p>\n<pre><code>assert( e == 0 );<\/code><\/pre>\n<p>  <\/p>\n<p>A \u0432 Rust \u2014 \u043f\u0440\u043e\u0441\u0442\u043e \u043c\u0430\u043a\u0440\u043e\u0441\u0430\u043c\u0438:<\/p>\n<p>  <\/p>\n<pre><code class=\"rust\">assert!(condition); assert_eq!(a, b);<\/code><\/pre>\n<p>  <\/p>\n<p>\u0412\u043f\u0440\u043e\u0447\u0435\u043c, \u0435\u0441\u0442\u044c \u0438 \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u043d\u043e\u0435 \u043e\u0442\u043b\u0438\u0447\u0438\u0435: \u0432 D \u0430\u0441\u0435\u0440\u0442\u044b \u0432 \u0440\u0435\u043b\u0438\u0437\u043d\u043e\u0439 \u0441\u0431\u043e\u0440\u043a\u0435 \u043e\u0442\u043a\u043b\u044e\u0447\u0430\u044e\u0442\u0441\u044f, \u043a\u0440\u043e\u043c\u0435 \u0441\u043f\u0435\u0446\u0438\u0430\u043b\u044c\u043d\u043e\u0433\u043e \u0441\u043b\u0443\u0447\u0430\u044f <code>assert(0)<\/code>, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f \u0434\u043b\u044f \u043e\u0431\u043e\u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u043d\u0435\u0434\u043e\u0441\u0442\u0438\u0436\u0438\u043c\u043e\u0433\u043e \u043f\u0440\u0438 \u043d\u043e\u0440\u043c\u0430\u043b\u044c\u043d\u043e\u043c \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u0438 \u043a\u043e\u0434\u0430.<\/p>\n<p>  \u0412 Rust \u043e\u043d\u0438 \u043e\u0441\u0442\u0430\u044e\u0442\u0441\u044f \u0438 \u0432 \u0440\u0435\u043b\u0438\u0437\u0435, \u0432\u043f\u0440\u043e\u0447\u0435\u043c, \u0430\u043d\u0430\u043b\u043e\u0433\u0438\u0447\u043d\u043e\u0435 \u043f\u043e\u0432\u0435\u0434\u0435\u043d\u0438\u0435 \u043c\u043e\u0436\u043d\u043e \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c \u043f\u0440\u0438 \u043f\u043e\u043c\u043e\u0449\u0438 \u043c\u0430\u043a\u0440\u043e\u0441\u0430 <code>debug_assert!<\/code>. \u0414\u043b\u044f \u0431\u043e\u043b\u0435\u0435 \u044f\u0432\u043d\u043e\u0433\u043e \u043e\u0431\u043e\u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u043d\u0435\u0434\u043e\u0441\u0442\u0438\u0436\u0438\u043c\u043e\u0433\u043e \u043a\u043e\u0433\u0434\u0430 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f <a href=\"https:\/\/doc.rust-lang.org\/std\/macro.unreachable!.html\">\u043e\u0442\u0434\u0435\u043b\u044c\u043d\u044b\u0439 \u043c\u0430\u043a\u0440\u043e\u0441<\/a> <code>unreachable!<\/code>.<\/p>\n<p>  <\/p>\n<h4>\u0418\u0442\u0435\u0440\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u043f\u043e \u043c\u0430\u0441\u0441\u0438\u0432\u0443 (\u043a\u043e\u043b\u043b\u0435\u043a\u0446\u0438\u0438)<\/h4>\n<p>  <\/p>\n<pre><code>int array[17]; foreach( value ; array ) {     func( value ); }<\/code><\/pre>\n<p>  <\/p>\n<pre><code class=\"rust\">let array = [0; 17]; for value in &amp;array {     println!(&quot;{}&quot;, value); }<\/code><\/pre>\n<p>  <\/p>\n<p>\u041e\u0441\u043e\u0431\u043e\u0439 \u0440\u0430\u0437\u043d\u0438\u0446\u044b \u043d\u0435\u0442, \u0445\u043e\u0442\u044f \u0446\u0438\u043a\u043b <a href=\"https:\/\/doc.rust-lang.org\/book\/loops.html#for\"><code>for<\/code><\/a> \u0432 Rust \u0438 \u043d\u0435 \u043f\u043e\u0445\u043e\u0436 \u043d\u0430 \u0441\u0432\u043e\u0435\u0433\u043e \u0440\u043e\u0434\u0441\u0442\u0432\u0435\u043d\u043d\u0438\u043a\u0430 \u0438\u0437 \u0421.<\/p>\n<p>  <\/p>\n<h4>\u0418\u043d\u0438\u0446\u0438\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044f \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u043e\u0432 \u043c\u0430\u0441\u0441\u0438\u0432\u0430<\/h4>\n<p>  <\/p>\n<pre><code>int array[17]; array[] = value;<\/code><\/pre>\n<p>  <\/p>\n<p>\u0412 D \u043c\u044b \u043c\u043e\u0436\u0435\u043c \u0438\u043d\u0438\u0446\u0438\u0430\u043b\u0438\u0437\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u043c\u0430\u0441\u0441\u0438\u0432 \u043e\u0434\u043d\u0438\u043c \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435\u043c, \u043a\u0430\u043a \u043f\u043e\u043a\u0430\u0437\u0430\u043d\u043e \u0432\u044b\u0448\u0435. \u0421\u0442\u043e\u0438\u0442 \u0437\u0430\u043c\u0435\u0442\u0438\u0442\u044c, \u0447\u0442\u043e \u043f\u043e\u0441\u043b\u0435 \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u044f \u043c\u0430\u0441\u0441\u0438\u0432 \u0441\u043d\u0430\u0447\u0430\u043b\u0430 \u0431\u0443\u0434\u0435\u0442 \u0438\u043d\u0438\u0446\u0438\u0430\u043b\u0438\u0437\u0438\u0440\u043e\u0432\u0430\u043d \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435\u043c \u043f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e \u0442\u043e\u0433\u043e \u0442\u0438\u043f\u0430, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0432 \u043d\u0451\u043c \u0441\u043e\u0434\u0435\u0440\u0436\u0438\u0442\u0441\u044f.<\/p>\n<p>  <\/p>\n<pre><code class=\"rust\">let array = [value; 17];<\/code><\/pre>\n<p>  <\/p>\n<p>\u0412 Rust \u043f\u0440\u0438\u0441\u0443\u0442\u0441\u0442\u0432\u0443\u0435\u0442 <a href=\"http:\/\/is.gd\/Vb71tM\">\u0441\u043f\u0435\u0446\u0438\u0430\u043b\u044c\u043d\u044b\u0439 \u0441\u0438\u043d\u0442\u0430\u043a\u0441\u0438\u0441<\/a> \u0434\u043b\u044f \u044d\u0442\u043e\u0433\u043e \u0441\u043b\u0443\u0447\u0430\u044f.<\/p>\n<p>  <\/p>\n<h4>\u0421\u043e\u0437\u0434\u0430\u043d\u0438\u0435 \u043c\u0430\u0441\u0441\u0438\u0432\u043e\u0432 \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u043e\u0439 \u0434\u043b\u0438\u043d\u044b<\/h4>\n<p>  <\/p>\n<p>D \u0438\u043c\u0435\u0435\u0442 \u0432\u0441\u0442\u0440\u043e\u0435\u043d\u043d\u0443\u044e \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u0443 \u043c\u0430\u0441\u0441\u0438\u0432\u043e\u0432 \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u043e\u0439 \u0434\u043b\u0438\u043d\u044b:<\/p>\n<p>  <\/p>\n<pre><code>int[] array; int x; array.length = array.length + 1; array[ array.length - 1 ] = x;<\/code><\/pre>\n<p>  <\/p>\n<p>Rust, \u0441\u043b\u0435\u0434\u0443\u044f \u0441\u0432\u043e\u0435\u0439 &quot;\u0444\u0438\u043b\u043e\u0441\u043e\u0444\u0438\u0438 \u044f\u0432\u043d\u043e\u0441\u0442\u0438&quot;, \u0442\u0440\u0435\u0431\u0443\u0435\u0442 \u0437\u0430\u0434\u0430\u0442\u044c \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435, \u043a\u043e\u0442\u043e\u0440\u044b\u043c \u0431\u0443\u0434\u0443\u0442 \u0438\u043d\u0438\u0446\u0438\u0430\u043b\u0438\u0437\u0438\u0440\u043e\u0432\u0430\u043d\u044b \u043d\u043e\u0432\u044b\u0435 \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u044b \u043f\u0440\u0438 \u0432\u044b\u0437\u043e\u0432\u0435 \u043c\u0435\u0442\u043e\u0434\u0430 <code>resize<\/code>. \u041f\u043e\u044d\u0442\u043e\u043c\u0443 \u043f\u0440\u0430\u0432\u0438\u043b\u044c\u043d\u0435\u0435 \u043f\u0440\u0438\u043c\u0435\u0440 \u0431\u0443\u0434\u0435\u0442 \u0437\u0430\u043f\u0438\u0441\u0430\u0442\u044c \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u043c \u043e\u0431\u0440\u0430\u0437\u043e\u043c:<\/p>\n<p>  <\/p>\n<pre><code class=\"rust\">let mut array = Vec::new(); array.push(value);<\/code><\/pre>\n<p>  <\/p>\n<p>\u041e\u0431\u0440\u0430\u0442\u0438\u0442\u0435 \u0432\u043d\u0438\u043c\u0430\u043d\u0438\u0435, \u0447\u0442\u043e \u043d\u0430\u043c <a href=\"http:\/\/is.gd\/fQojq7\">\u043d\u0435 \u043f\u0440\u0438\u0445\u043e\u0434\u0438\u0442\u0441\u044f<\/a> \u0443\u043a\u0430\u0437\u044b\u0432\u0430\u0442\u044c \u0442\u0438\u043f \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u043e\u0432 \u0441\u043e\u0434\u0435\u0440\u0436\u0430\u0449\u0438\u0445\u0441\u044f \u0432 \u0432\u0435\u043a\u0442\u043e\u0440\u0435 \u2014 \u043e\u043d\u0438 \u0431\u0443\u0434\u0443\u0442 \u0432\u044b\u0432\u0435\u0434\u0435\u043d\u044b \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0438.<\/p>\n<p>  <\/p>\n<h4>\u0421\u043e\u0435\u0434\u0438\u043d\u0435\u043d\u0438\u0435 \u0441\u0442\u0440\u043e\u043a<\/h4>\n<p>  <\/p>\n<p>\u0412 D \u0435\u0441\u0442\u044c \u0441\u043f\u0435\u0446\u0438\u0430\u043b\u044c\u043d\u044b\u0435 \u043f\u0435\u0440\u0435\u0433\u0440\u0443\u0436\u0430\u0435\u043c\u044b\u0435 \u043e\u043f\u0435\u0440\u0430\u0442\u043e\u0440\u044b ~ \u0438 ~=, \u043f\u0440\u0435\u0434\u043d\u0430\u0437\u043d\u0430\u0447\u0435\u043d\u043d\u044b\u0435 \u0434\u043b\u044f \u0441\u043e\u0435\u0434\u0438\u043d\u0435\u043d\u0438\u044f \u0441\u043f\u0438\u0441\u043a\u043e\u0432:<\/p>\n<p>  <\/p>\n<pre><code>char[] s1; char[] s2; char[] s;  s = s1 ~ s2; s ~= &quot;hello&quot;;<\/code><\/pre>\n<p>  <\/p>\n<p>\u041e\u0444\u0438\u0446\u0438\u0430\u043b\u044c\u043d\u0430\u044f \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u044f <a href=\"https:\/\/dlang.org\/spec\/arrays.html#array-concatenation\">\u0430\u0440\u0433\u0443\u043c\u0435\u043d\u0442\u0438\u0440\u0443\u0435\u0442<\/a> \u043d\u0430\u043b\u0438\u0447\u0438\u0435 \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u044b\u0445 \u043e\u043f\u0435\u0440\u0430\u0442\u043e\u0440\u043e\u0432 \u0442\u0435\u043c, \u0447\u0442\u043e \u043f\u0435\u0440\u0435\u0433\u0440\u0443\u0437\u043a\u0430 \u043e\u043f\u0435\u0440\u0430\u0442\u043e\u0440\u0430 <code>+<\/code> \u043c\u043e\u0436\u0435\u0442 \u043f\u0440\u0438\u0432\u043e\u0434\u0438\u0442\u044c \u043a \u043d\u0435\u043e\u0436\u0438\u0434\u0430\u043d\u043d\u043e\u0441\u0442\u044f\u043c.<\/p>\n<p>  <\/p>\n<pre><code class=\"rust\">let s1 = &quot;abc&quot;; let s2 = &quot;eee&quot;; let mut s = s1.to_owned() + s2; s.push_str(&quot;world&quot;);<\/code><\/pre>\n<p>  <\/p>\n<p><a href=\"http:\/\/is.gd\/xkDv2j\">\u0412 Rust<\/a>, \u0441 \u043e\u0434\u043d\u043e\u0439 \u0441\u0442\u043e\u0440\u043e\u043d\u044b, \u044d\u0442\u0438 \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u044b \u043d\u0435\u0432\u043e\u0437\u043c\u043e\u0436\u043d\u044b \u0438\u0437-\u0437\u0430 \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e\u0441\u0442\u0438 \u044f\u0432\u043d\u043e\u0433\u043e \u043f\u0440\u0438\u0432\u0435\u0434\u0435\u043d\u0438\u044f \u0442\u0438\u043f\u043e\u0432. \u0421 \u0434\u0440\u0443\u0433\u043e\u0439 \u0441\u0442\u043e\u0440\u043e\u043d\u044b, \u043e\u043f\u0435\u0440\u0430\u0442\u043e\u0440 <code>+=<\/code> \u0434\u043b\u044f \u0441\u0442\u0440\u043e\u043a \u0432\u0441\u0451-\u0442\u0430\u043a\u0438 \u043d\u0435 \u0440\u0435\u0430\u043b\u0438\u0437\u043e\u0432\u0430\u043d.<\/p>\n<p>  <\/p>\n<h4>\u0424\u043e\u0440\u043c\u0430\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0439 \u0432\u044b\u0432\u043e\u0434<\/h4>\n<p>  <\/p>\n<pre><code>import std.stdio;  writefln( &quot;Calling all cars %s times!&quot; , ntimes );<\/code><\/pre>\n<p>  <\/p>\n<pre><code class=\"rust\">println!(&quot;Calling all cars {} times!&quot; , ntimes);<\/code><\/pre>\n<p>  <\/p>\n<p><a href=\"http:\/\/is.gd\/bseIqb\">[\u0417\u0430\u043f\u0443\u0441\u0442\u0438\u0442\u044c]<\/a><\/p>\n<p>  \u041a\u0430\u043a \u0432\u0438\u0434\u0438\u043c, \u044f\u0437\u044b\u043a\u0438 \u0432 \u044d\u0442\u043e\u043c \u043f\u043b\u0430\u043d\u0435 \u043d\u0435 \u043e\u0441\u043e\u0431\u043e \u0440\u0430\u0437\u043b\u0438\u0447\u0430\u044e\u0442\u0441\u044f. \u0420\u0430\u0437\u0432\u0435 \u0447\u0442\u043e \u0432 Rust <a href=\"https:\/\/doc.rust-lang.org\/std\/fmt\/index.html\">\u0444\u043e\u0440\u043c\u0430\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435<\/a> \u043d\u0435 \u043f\u043e\u0445\u043e\u0436\u0435 \u043d\u0430 &quot;\u043f\u0440\u0438\u0432\u044b\u0447\u043d\u043e\u0435&quot; \u0438\u0437 \u0421.<\/p>\n<p>  <\/p>\n<h4>\u041e\u0431\u0440\u0430\u0449\u0435\u043d\u0438\u0435 \u043a \u0444\u0443\u043d\u043a\u0446\u0438\u044f\u043c \u0434\u043e \u043e\u0431\u044a\u044f\u0432\u043b\u0435\u043d\u0438\u044f<\/h4>\n<p>  <\/p>\n<p>\u041e\u0431\u0430 \u044f\u0437\u044b\u043a\u0430 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044e\u0442 <a href=\"https:\/\/doc.rust-lang.org\/book\/crates-and-modules.html\">\u043c\u043e\u0434\u0443\u043b\u0438<\/a>, \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u043f\u043e\u0440\u044f\u0434\u043e\u043a \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u0438\u044f \u043d\u0435 \u0438\u043c\u0435\u0435\u0442 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u0438 \u043f\u0440\u0435\u0434\u0432\u0430\u0440\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u0435 \u043e\u0431\u044a\u044f\u0432\u043b\u0435\u043d\u0438\u044f \u043d\u0435 \u043d\u0443\u0436\u043d\u044b.<\/p>\n<p>  <a href=\"http:\/\/is.gd\/XewL6K\">\u041f\u0440\u0438\u043c\u0435\u0440 \u043d\u0430 Rust:<\/a><\/p>\n<p>  <\/p>\n<pre><code class=\"rust\">fn foo() -&gt; Test {     bar() }  fn bar() -&gt; Test {     Test { a: 10, b: 20 } }  struct Test {     a: i32,     b: i32, }<\/code><\/pre>\n<p>  <\/p>\n<h4>\u0424\u0443\u043d\u043a\u0446\u0438\u0438 \u0431\u0435\u0437 \u0430\u0440\u0433\u0443\u043c\u0435\u043d\u0442\u043e\u0432<\/h4>\n<p>  <\/p>\n<pre><code>void foo() {     ... }<\/code><\/pre>\n<p>  <\/p>\n<pre><code class=\"rust\">fn foo() {     ... }<\/code><\/pre>\n<p>  <\/p>\n<p>\u0421\u0440\u0430\u0432\u043d\u0435\u043d\u0438\u0435 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u0442\u0435\u0440\u044f\u0435\u0442 \u0441\u043c\u044b\u0441\u043b \u0432 \u043e\u0442\u0440\u044b\u0432\u0435 \u043e\u0442 \u0421, \u0442\u0430\u043a \u043a\u0430\u043a \u043e\u0431\u0430 \u044f\u0437\u044b\u043a\u0430 \u043d\u0435 \u0442\u0440\u0435\u0431\u0443\u044e\u0442 \u0443\u043a\u0430\u0437\u044b\u0432\u0430\u0442\u044c <code>void<\/code> \u0434\u043b\u044f \u043e\u0431\u043e\u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u043e\u0442\u0441\u0443\u0442\u0441\u0442\u0432\u0438\u044f \u0430\u0440\u0433\u0443\u043c\u0435\u043d\u0442\u043e\u0432.<\/p>\n<p>  <\/p>\n<h4>\u0412\u044b\u0445\u043e\u0434 \u0438\u0437 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u0438\u0445 \u0431\u043b\u043e\u043a\u043e\u0432 \u043a\u043e\u0434\u0430<\/h4>\n<p>  <\/p>\n<pre><code>Louter: for( i = 0 ; i &lt; 10 ; i++ ) {     for( j = 0 ; j &lt; 10 ; j++ ) {         if (j == 3) break Louter;         if (j == 4) continue Louter;     } }<\/code><\/pre>\n<p>  <\/p>\n<pre><code class=\"rust\">'outer: for i in 0..10 {     'inner: for j in 0..10 {         if i == 3 {             break 'outer;         }         if j == 4 {             continue 'inner;         }     } }<\/code><\/pre>\n<p>  <\/p>\n<p>\u0421\u0438\u043d\u0442\u0430\u043a\u0441\u0438\u0441 <a href=\"https:\/\/doc.rust-lang.org\/book\/loops.html#loop-labels\">break\/continue<\/a> \u0441 \u043c\u0435\u0442\u043a\u043e\u0439 \u043f\u0440\u0430\u043a\u0442\u0438\u0447\u0435\u0441\u043a\u0438 \u0438\u0434\u0435\u043d\u0442\u0438\u0447\u0435\u043d.<\/p>\n<p>  <\/p>\n<h4>\u041f\u0440\u043e\u0441\u0442\u0440\u0430\u043d\u0441\u0442\u0432\u043e \u0438\u043c\u0451\u043d \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440<\/h4>\n<p>  <\/p>\n<p>\u041e\u043f\u044f\u0442\u044c \u0436\u0435, \u0432 \u043e\u0431\u043e\u0438\u0445 \u044f\u0437\u044b\u043a\u0430\u0445 \u043d\u0435\u0442 \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u043e\u0433\u043e \u043f\u0440\u043e\u0441\u0442\u0440\u0430\u043d\u0441\u0442\u0432\u0430 \u0438\u043c\u0451\u043d \u0434\u043b\u044f \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440.<\/p>\n<p>  <\/p>\n<h4>\u0412\u0435\u0442\u0432\u043b\u0435\u043d\u0438\u0435 \u043f\u043e \u0441\u0442\u0440\u043e\u043a\u043e\u0432\u044b\u043c \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f\u043c (\u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u043a\u0430 \u0430\u0440\u0433\u0443\u043c\u0435\u043d\u0442\u043e\u0432 \u043a\u043e\u043c\u0430\u043d\u0434\u043d\u043e\u0439 \u0441\u0442\u0440\u043e\u043a\u0438)<\/h4>\n<p>  <\/p>\n<pre><code>void dostring( string s ) {     switch( s ) {         case &quot;hello&quot;:   ...         case &quot;goodbye&quot;: ...         case &quot;maybe&quot;:   ...         default:        ...     } }<\/code><\/pre>\n<p>  <\/p>\n<pre><code class=\"rust\">fn do_string(s: &amp;str) {     match s {         &quot;hello&quot;   =&gt; {},         &quot;goodbye&quot; =&gt; {},         &quot;maybe&quot;   =&gt; {},         _         =&gt; {},     } }<\/code><\/pre>\n<p>  <\/p>\n<p><a href=\"http:\/\/is.gd\/udWdkB\">\u0412 \u0434\u0430\u043d\u043d\u043e\u043c \u0441\u043b\u0443\u0447\u0430\u0435<\/a> \u043e\u0441\u043e\u0431\u043e\u0439 \u0440\u0430\u0437\u043d\u0438\u0446\u044b \u043d\u0435 \u0432\u0438\u0434\u043d\u043e, \u043d\u043e \u0432 Rust \u043a\u043e\u043d\u0441\u0442\u0440\u0443\u043a\u0446\u0438\u044f <code>match<\/code> \u2014 \u044d\u0442\u043e \u043f\u043e\u043b\u043d\u043e\u0446\u0435\u043d\u043d\u043e\u0435 \u0441\u0440\u0430\u0432\u043d\u0435\u043d\u0438\u0435 \u0441 \u043e\u0431\u0440\u0430\u0437\u0446\u043e\u043c, \u0447\u0442\u043e <a href=\"http:\/\/is.gd\/wUHoZF\">\u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u0434\u0435\u043b\u0430\u0442\u044c<\/a> \u0431\u043e\u043b\u0435\u0435 \u0445\u0438\u0442\u0440\u044b\u0435 \u0432\u0435\u0449\u0438:<\/p>\n<p>  <\/p>\n<pre><code class=\"rust\">enum Type {     Common,     Secret,     Unknown, }  struct Data {     id: i32,     data_type: Type,     info: Vec&lt;i32&gt;, }  fn check_data(data: &amp;Data) {     match *data {         Data { id: 42, .. } =&gt; println!(&quot;The Ultimate Question...&quot;),         Data { data_type: Type::Secret, info: ref i, .. } if i.is_empty() =&gt; println!(&quot;Empty secret data!&quot;),         _ =&gt; println!(&quot;Some data...&quot;),     } }<\/code><\/pre>\n<p>  <\/p>\n<p>\u041f\u043e\u0434\u0440\u043e\u0431\u043d\u0435\u0435 \u0432 <a href=\"https:\/\/doc.rust-lang.org\/book\/patterns.html\">\u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u0438<\/a> (<a href=\"http:\/\/rurust.github.io\/rust_book_ru\/src\/patterns.html\">\u043f\u0435\u0440\u0435\u0432\u043e\u0434<\/a>).<\/p>\n<p>  <\/p>\n<h4>\u0412\u044b\u0440\u0430\u0432\u043d\u0438\u0432\u0430\u043d\u0438\u0435 \u043f\u043e\u043b\u0435\u0439 \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440<\/h4>\n<p>  <\/p>\n<p>\u0412 D \u0435\u0441\u0442\u044c \u0441\u043f\u0435\u0446\u0438\u0430\u043b\u044c\u043d\u044b\u0439 \u0441\u0438\u043d\u0442\u0430\u043a\u0441\u0438\u0441, \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u043a\u043e\u0442\u043e\u0440\u043e\u0433\u043e \u0432\u044b \u043c\u043e\u0436\u0435\u0442\u0435 \u0434\u0435\u0442\u0430\u043b\u044c\u043d\u043e \u043d\u0430\u0441\u0442\u0440\u043e\u0438\u0442\u044c \u0432\u044b\u0440\u0430\u0432\u043d\u0438\u0432\u0430\u043d\u0438\u0435 \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u044b\u0445 \u043f\u043e\u043b\u0435\u0439:<\/p>\n<p>  <\/p>\n<pre><code>struct ABC {     int z;              \/\/ z is aligned to the default      align(1) int x;    \/\/ x is byte aligned     align(4) {         ...             \/\/ declarations in {} are dword aligned     }     align(2):          \/\/ switch to word alignment from here on      int y;              \/\/ y is word aligned }<\/code><\/pre>\n<p>  <\/p>\n<p>\u0412 Rust \u043c\u043e\u0436\u043d\u043e \u0442\u043e\u043b\u044c\u043a\u043e \u043f\u043e\u043b\u043d\u043e\u0441\u0442\u044c\u044e \u043e\u0442\u043a\u043b\u044e\u0447\u0438\u0442\u044c \u0432\u044b\u0440\u0430\u0432\u043d\u0438\u0432\u0430\u043d\u0438\u0435 \u0434\u043b\u044f \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u044b\u0445 \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440:<\/p>\n<p>  <\/p>\n<pre><code class=\"rust\">#[repr(packed)] struct Abc {     ... }<\/code><\/pre>\n<p>  <\/p>\n<h4>\u0410\u043d\u043e\u043d\u0438\u043c\u043d\u044b\u0435 \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u044b \u0438 \u043e\u0431\u044a\u0435\u0434\u0438\u043d\u0435\u043d\u0438\u044f<\/h4>\n<p>  <\/p>\n<p>D \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u0435\u0442 \u0430\u043d\u043e\u043d\u0438\u043c\u043d\u044b\u0435 \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u044b, \u0447\u0442\u043e \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u0441\u043e\u0445\u0440\u0430\u043d\u044f\u0442\u044c \u043f\u043b\u043e\u0441\u043a\u0438\u0439 \u0432\u043d\u0435\u0448\u043d\u0438\u0439 \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441 \u0434\u043b\u044f \u0432\u043b\u043e\u0436\u0435\u043d\u043d\u044b\u0445 \u0441\u0443\u0449\u043d\u043e\u0441\u0442\u0435\u0439:<\/p>\n<p>  <\/p>\n<pre><code>struct Foo {     int i;     union {         struct { int x; long y; }         char* p;     } }  Foo f;  f.i; f.x; f.y; f.p;<\/code><\/pre>\n<p>  <\/p>\n<p>\u0412 Rust \u043d\u0435\u0442 \u0430\u043d\u043e\u043d\u0438\u043c\u043d\u044b\u0445 \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440 \u0438\u043b\u0438 \u043e\u0431\u044a\u0435\u0434\u0438\u043d\u0435\u043d\u0438\u0439, \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u0430\u043d\u0430\u043b\u043e\u0433\u0438\u0447\u043d\u044b\u0439 \u043a\u043e\u0434 \u0431\u0443\u0434\u0435\u0442 \u0432\u044b\u0433\u043b\u044f\u0434\u0435\u0442\u044c \u0432\u043e\u0442 \u0442\u0430\u043a:<\/p>\n<p>  <\/p>\n<pre><code class=\"rust\">enum Bar {     Baz {x: i32, y: i32 },     Option(i8), }  struct Foo {     i: i32,     e: Bar, }<\/code><\/pre>\n<p>  <\/p>\n<p>\u0411\u043e\u043b\u0435\u0435 \u0442\u043e\u0433\u043e, Rust \u043d\u0435 \u043f\u043e\u0437\u0432\u043e\u043b\u0438\u0442 \u0441\u043b\u0443\u0447\u0430\u0439\u043d\u043e \u043e\u0431\u0440\u0430\u0442\u0438\u0442\u044c\u0441\u044f \u043d\u0435 \u043a \u0442\u043e\u043c\u0443 \u043f\u043e\u043b\u044e \u043e\u0431\u044a\u0435\u0434\u0438\u043d\u0435\u043d\u0438\u044f, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0431\u044b\u043b\u043e \u0438\u043d\u0438\u0446\u0438\u0430\u043b\u0438\u0437\u0438\u0440\u043e\u0432\u0430\u043d\u043e. \u041f\u043e\u044d\u0442\u043e\u043c\u0443 \u0438 \u043e\u0431\u0440\u0430\u0449\u0430\u0442\u044c\u0441\u044f \u043a \u043d\u0438\u043c \u043f\u0440\u0438\u0434\u0451\u0442\u0441\u044f <a href=\"http:\/\/is.gd\/cfcDgJ\">\u0438\u043d\u0430\u0447\u0435<\/a>:<\/p>\n<p>  <\/p>\n<pre><code class=\"rust\">match f.e {     Bar::Val(a) =&gt; println!(&quot;{}&quot;, a),     Bar::Baz { x, y } =&gt; println!(&quot;{} and {}&quot;, x, y), }<\/code><\/pre>\n<p>  <\/p>\n<p>\u0422\u0430\u043a\u0438\u043c \u043e\u0431\u0440\u0430\u0437\u043e\u043c, \u043e\u0431\u044a\u0435\u0434\u0438\u043d\u0435\u043d\u0438\u044f \u043d\u0435\u043b\u044c\u0437\u044f \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u043a\u0430\u043a (\u043f\u043e\u043b\u0443)\u043b\u0435\u0433\u0430\u043b\u044c\u043d\u043e\u0435 \u043f\u0440\u0435\u043e\u0431\u0440\u0430\u0437\u043e\u0432\u0430\u043d\u0438\u0435 \u0442\u0438\u043f\u043e\u0432, \u0437\u0430\u0442\u043e \u0438\u0441\u043a\u043b\u044e\u0447\u0430\u044e\u0442\u0441\u044f \u043f\u043e\u0442\u0435\u043d\u0446\u0438\u0430\u043b\u044c\u043d\u044b\u0435 \u043e\u0448\u0438\u0431\u043a\u0438.<\/p>\n<p>  <\/p>\n<h4>\u041e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u0438\u0435 \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440 \u0438 \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0445<\/h4>\n<p>  <\/p>\n<p>\u041e\u0431\u0430 \u044f\u0437\u044b\u043a\u0430 \u0442\u0440\u0435\u0431\u0443\u044e\u0442 \u0440\u0430\u0437\u0434\u0435\u043b\u044c\u043d\u043e\u0433\u043e \u043e\u0431\u044a\u044f\u0432\u043b\u0435\u043d\u0438\u044f \u0442\u0438\u043f\u0430 \u0438 \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u043e\u0439, \u0442\u043e \u0435\u0441\u0442\u044c, \u043a\u0430\u043a \u043d\u0430 \u0421, \u0437\u0430\u043f\u0438\u0441\u0430\u0442\u044c \u043d\u0435 \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u0441\u044f:<\/p>\n<p>  <\/p>\n<pre><code>struct Foo { int x; int y; } foo;<\/code><\/pre>\n<h4>\u041f\u043e\u043b\u0443\u0447\u0435\u043d\u0438\u0435 \u0441\u043c\u0435\u0449\u0435\u043d\u0438\u044f \u043f\u043e\u043b\u044f \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u044b<\/h4>\n<p>  <\/p>\n<p>\u0412 D \u0443 \u043f\u043e\u043b\u0435\u0439 \u0435\u0441\u0442\u044c \u0441\u043f\u0435\u0446\u0438\u0430\u043b\u044c\u043d\u043e\u0435 \u0441\u0432\u043e\u0439\u0441\u0442\u0432\u043e <code>offsetof<\/code>:<\/p>\n<p>  <\/p>\n<pre><code>struct Foo { int x; int y; }  off = Foo.y.offsetof;<\/code><\/pre>\n<p>  <\/p>\n<p>\u041d\u0430 \u0434\u0430\u043d\u043d\u044b\u0439 \u043c\u043e\u043c\u0435\u043d\u0442 Rust \u043d\u0435 \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u0435\u0442 \u0442\u0430\u043a\u0443\u044e \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u044c, \u0442\u0430\u043a \u0447\u0442\u043e \u043f\u0440\u0438 \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e\u0441\u0442\u0438 \u0432\u0430\u043c \u043f\u0440\u0438\u0434\u0451\u0442\u0441\u044f \u0432\u0440\u0443\u0447\u043d\u0443\u044e \u0432\u044b\u0447\u0438\u0441\u043b\u044f\u0442\u044c \u0441\u043c\u0435\u0449\u0435\u043d\u0438\u044f, \u043c\u0430\u043d\u0438\u043f\u0443\u043b\u0438\u0440\u0443\u044f \u0443\u043a\u0430\u0437\u0430\u0442\u0435\u043b\u044f\u043c\u0438 \u043d\u0430 \u0447\u043b\u0435\u043d\u044b \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u044b. \u0412\u043f\u0440\u043e\u0447\u0435\u043c, <code>offsetof<\/code> \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u0437\u0430\u0440\u0435\u0437\u0435\u0440\u0432\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u043c \u043a\u043b\u044e\u0447\u0435\u0432\u044b\u043c \u0441\u043b\u043e\u0432\u043e\u043c, \u0430 \u0437\u043d\u0430\u0447\u0438\u0442 \u0441\u043e \u0432\u0440\u0435\u043c\u0435\u043d\u0435\u043c \u0442\u0430\u043a\u0430\u044f \u0444\u0443\u043d\u043a\u0446\u0438\u043e\u043d\u0430\u043b\u044c\u043d\u043e\u0441\u0442\u044c \u0434\u043e\u043b\u0436\u043d\u0430 \u043f\u043e\u044f\u0432\u0438\u0442\u044c\u0441\u044f.<\/p>\n<p>  <\/p>\n<h4>\u0418\u043d\u0438\u0446\u0438\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044f \u043e\u0431\u044a\u0435\u0434\u0438\u043d\u0435\u043d\u0438\u0439<\/h4>\n<p>  <\/p>\n<p>D \u0442\u0440\u0435\u0431\u0443\u0435\u0442 \u044f\u0432\u043d\u043e\u0433\u043e \u0443\u043a\u0430\u0437\u0430\u043d\u0438\u044f \u043d\u0430 \u0442\u043e, \u043a\u0430\u043a\u043e\u043c\u0443 \u043f\u043e\u043b\u044e \u043e\u0431\u044a\u0435\u0434\u0438\u043d\u0435\u043d\u0438\u044f \u043f\u0440\u0438\u0441\u0432\u0430\u0438\u0432\u0430\u0435\u0442\u0441\u044f \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435:<\/p>\n<p>  <\/p>\n<pre><code>union U { int a; long b; } U x = { a : 5 };<\/code><\/pre>\n<p>  <\/p>\n<p>Rust \u043f\u043e\u0441\u0442\u0443\u043f\u0430\u0435\u0442 \u0430\u043d\u0430\u043b\u043e\u0433\u0438\u0447\u043d\u043e, \u043a\u0440\u043e\u043c\u0435 \u0442\u043e\u0433\u043e, \u043a\u0430\u043a \u0443\u0436\u0435 \u0433\u043e\u0432\u043e\u0440\u0438\u043b\u043e\u0441\u044c, \u043e\u043d \u043d\u0435 \u043f\u043e\u0437\u0432\u043e\u043b\u0438\u0442 \u043e\u0431\u0440\u0430\u0442\u0438\u0442\u044c\u0441\u044f \u043d\u0435 \u043a \u0442\u043e\u043c\u0443 \u043f\u043e\u043b\u044e \u043e\u0431\u044a\u0435\u0434\u0438\u043d\u0435\u043d\u0438\u044f, \u043a\u043e\u0442\u043e\u0440\u043e\u0435 \u0431\u044b\u043b\u043e \u0438\u043d\u0438\u0446\u0438\u0430\u043b\u0438\u0437\u0438\u0440\u043e\u0432\u0430\u043d\u043e.<\/p>\n<p>  <\/p>\n<pre><code class=\"rust\">enum U {     A(i32),     B(i64), }  let u = U::A(10);<\/code><\/pre>\n<p>  <\/p>\n<h4>\u0418\u043d\u0438\u0446\u0438\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044f \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440<\/h4>\n<p>  <\/p>\n<p>\u0412 D \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u044b \u043c\u043e\u0436\u043d\u043e \u0438\u043d\u0438\u0446\u0438\u0430\u043b\u0438\u0437\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u043a\u0430\u043a \u043f\u043e \u043f\u043e\u0440\u044f\u0434\u043a\u0443, \u0442\u0430\u043a \u0438 \u0441 \u0443\u043a\u0430\u0437\u0430\u043d\u0438\u0435\u043c \u0438\u043c\u0451\u043d \u043f\u043e\u043b\u0435\u0439:<\/p>\n<p>  <\/p>\n<pre><code>struct S { int a; int b; int c; int d; } S x = { 1, 2, 3, 4 }; S y = { b : 3 , a : 5 , c : 2 , d : 10 };<\/code><\/pre>\n<p>  <\/p>\n<p>\u0412 Rust \u0443\u043a\u0430\u0437\u0430\u043d\u0438\u0435 \u0438\u043c\u0451\u043d <a href=\"http:\/\/is.gd\/tuju0K\">\u043e\u0431\u044f\u0437\u0430\u0442\u0435\u043b\u044c\u043d\u043e<\/a>:<\/p>\n<p>  <\/p>\n<pre><code class=\"rust\">struct S {     a: i32, b: i32, c: i32, d: i32, }  let x = s { 1, 2, 3, 4 }; \/\/ Erorr. let y = S { a: 1, b: 2, c: 3, d: 4 }; \/\/ Ok.<\/code><\/pre>\n<p>  <\/p>\n<h4>\u0418\u043d\u0438\u0446\u0438\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044f \u043c\u0430\u0441\u0441\u0438\u0432\u043e\u0432<\/h4>\n<p>  <\/p>\n<p>\u0412 D \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u0435\u0442 \u043c\u043d\u043e\u0433\u043e \u0441\u043f\u043e\u0441\u043e\u0431\u043e\u0432 \u0438\u043d\u0438\u0446\u0438\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438 \u043c\u0430\u0441\u0441\u0438\u0432\u0430, \u0432 \u0442\u043e\u043c \u0447\u0438\u0441\u043b\u0435 \u0441 \u0443\u043a\u0430\u0437\u0430\u043d\u0438\u0435\u043c \u0438\u043d\u0434\u0435\u043a\u0441\u043e\u0432 \u0438\u043d\u0438\u0446\u0438\u0430\u043b\u0438\u0437\u0438\u0440\u0443\u0435\u043c\u044b\u0445 \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u043e\u0432:<\/p>\n<p>  <\/p>\n<pre><code>int[3] a = [ 3, 2, 0 ]; int[3] a = [ 3, 2 ];            \/\/ unsupplied initializers are 0, just like in C int[3] a = [ 2 : 0, 0 : 3, 1 : 2 ]; int[3] a = [ 2 : 0, 0 : 3, 2 ];     \/\/ if not supplied, the index is the previous one plus one.<\/code><\/pre>\n<p>  <\/p>\n<p><a href=\"http:\/\/is.gd\/2NL0Q7\">\u0412 Rust<\/a> \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e \u043b\u0438\u0431\u043e \u043f\u0435\u0440\u0435\u0447\u0438\u0441\u043b\u0438\u0442\u044c \u0432\u0441\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f, \u043a\u043e\u0442\u043e\u0440\u044b\u043c\u0438 \u043c\u044b \u0445\u043e\u0442\u0438\u043c \u0438\u043d\u0438\u0446\u0438\u0430\u043b\u0438\u0437\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u043c\u0430\u0441\u0441\u0438\u0432, \u043b\u0438\u0431\u043e \u0443\u043a\u0430\u0437\u0430\u0442\u044c \u043e\u0434\u043d\u043e \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u0434\u043b\u044f \u0432\u0441\u0435\u0445 \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u043e\u0432 \u043c\u0430\u0441\u0441\u0438\u0432\u0430:<\/p>\n<p>  <\/p>\n<pre><code class=\"rust\">let a1 = [1, 2, 3, 4, 5]; let a2 = [0; 6];<\/code><\/pre>\n<p>  <\/p>\n<h4>\u042d\u043a\u0440\u0430\u043d\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u0441\u043f\u0435\u0446\u0441\u0438\u043c\u0432\u043e\u043b\u043e\u0432 \u0432 \u0441\u0442\u0440\u043e\u043a\u0430\u0445<\/h4>\n<p>  <\/p>\n<p>\u041e\u0431\u0430 \u044f\u0437\u044b\u043a\u0430, \u043d\u0430\u0440\u044f\u0434\u0443 \u0441 \u044d\u043a\u0440\u0430\u043d\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435\u043c \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u044b\u0445 \u0441\u0438\u043c\u0432\u043e\u043b\u043e\u0432, \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u044e\u0442 \u0442\u0430\u043a \u043d\u0430\u0437\u044b\u0432\u0430\u0435\u043c\u044b\u0435 &quot;\u0441\u044b\u0440\u044b\u0435 \u0441\u0442\u0440\u043e\u043a\u0438&quot;:<\/p>\n<p>  <\/p>\n<pre><code>string file = &quot;c:\\\\root\\\\file.c&quot;; string file = r&quot;c:\\root\\file.c&quot;;  \/\/ c:\\root\\file.c  string quotedString = `&quot;[^\\\\]*(\\\\.[^\\\\]*)*&quot;`;<\/code><\/pre>\n<p>  <\/p>\n<pre><code class=\"rust\">let file = &quot;c:\\\\root\\\\file.c&quot;; let file = r&quot;c:\\root\\file.c&quot;;  let quoted_string = r#&quot;&quot;[^\\\\]*(\\\\.[^\\\\]*)*&quot;&quot;#;<\/code><\/pre>\n<p>  <\/p>\n<p>\u0412 Rust &quot;\u0441\u044b\u0440\u044b\u0435 \u0441\u0442\u0440\u043e\u043a\u0438&quot; \u0444\u043e\u0440\u043c\u0438\u0440\u0443\u044e\u0442\u0441\u044f <a href=\"https:\/\/doc.rust-lang.org\/reference.html#raw-string-literals\">\u0434\u043e\u0432\u043e\u043b\u044c\u043d\u043e \u043f\u0440\u043e\u0441\u0442\u043e<\/a>: \u043e\u043d\u0438 \u043d\u0430\u0447\u0438\u043d\u0430\u044e\u0442\u0441\u044f \u0441 \u0441\u0438\u043c\u0432\u043e\u043b\u0430 <code>r<\/code>, \u0437\u0430 \u043a\u043e\u0442\u043e\u0440\u044b\u043c \u0441\u043b\u0435\u0434\u0443\u0435\u0442 \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u043b\u044c\u043d\u043e\u0435 \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u0441\u0438\u043c\u0432\u043e\u043b\u043e\u0432 <code>#<\/code>, \u0441 \u043f\u043e\u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0435\u0439 \u043a\u0430\u0432\u044b\u0447\u043a\u043e\u0439 (<code>&quot;<\/code>). \u0417\u0430\u0432\u0435\u0440\u0448\u0430\u044e\u0442\u0441\u044f \u0441\u0442\u0440\u043e\u043a\u0438 \u043a\u0430\u0432\u044b\u0447\u043a\u043e\u0439 \u0441 \u0442\u0430\u043a\u0438\u043c \u0436\u0435 \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e\u043c <code>#<\/code>. \u0412 D \u0440\u0430\u0437\u043d\u043e\u0432\u0438\u0434\u043d\u043e\u0441\u0442\u0435\u0439 \u0441\u0442\u0440\u043e\u043a <a href=\"https:\/\/dlang.org\/spec\/lex.html\">\u0437\u0430\u043c\u0435\u0442\u043d\u043e \u0431\u043e\u043b\u044c\u0448\u0435<\/a>.<\/p>\n<p>  <\/p>\n<h4>ASCII \u043f\u0440\u043e\u0442\u0438\u0432 \u043c\u043d\u043e\u0433\u043e\u0431\u0430\u0439\u0442\u043d\u044b\u0445 \u043a\u043e\u0434\u0438\u0440\u043e\u0432\u043e\u043a<\/h4>\n<p>  <\/p>\n<p>\u0412 D \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u0435\u0442\u0441\u044f \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u0432\u0438\u0434\u043e\u0432 \u0441\u0442\u0440\u043e\u043a, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0445\u0440\u0430\u043d\u044f\u0442 \u0441\u0438\u043c\u0432\u043e\u043b\u044b \u0440\u0430\u0437\u043d\u043e\u0433\u043e \u0442\u0438\u043f\u0430:<\/p>\n<p>  <\/p>\n<pre><code>string  utf8  = &quot;hello&quot;;     \/\/ UTF-8 string wstring utf16 = &quot;hello&quot;;     \/\/ UTF-16 string dstring utf32 = &quot;hello&quot;;     \/\/ UTF-32 string<\/code><\/pre>\n<p>  <\/p>\n<p>\u0412 Rust \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u0435\u0442 \u0442\u043e\u043b\u044c\u043a\u043e \u043e\u0434\u0438\u043d \u0442\u0438\u043f \u0441\u0442\u0440\u043e\u043a, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u044f\u044e\u0442 \u043f\u043e\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u044c UTF-8 \u0431\u0430\u0439\u0442:<\/p>\n<p>  <\/p>\n<pre><code class=\"rust\">let str = &quot;hello&quot;;<\/code><\/pre>\n<p>  <\/p>\n<p>\u041a\u043e\u043d\u0441\u0442\u0430\u043d\u0442\u0438\u043d aka  <a href=\"https:\/\/habrahabr.ru\/users\/kstep\/\" class=\"user_link\">kstep<\/a> \u043e\u043f\u0443\u0431\u043b\u0438\u043a\u043e\u0432\u0430\u043b \u043d\u0430 \u0445\u0430\u0431\u0440\u0435 <a href=\"https:\/\/habrahabr.ru\/post\/274485\/\">\u0441\u0435\u0440\u0438\u044e<\/a> <a href=\"https:\/\/habrahabr.ru\/post\/274455\/\">\u043f\u0435\u0440\u0435\u0432\u043e\u0434\u043e\u0432<\/a> \u043f\u0440\u043e <a href=\"https:\/\/habrahabr.ru\/post\/274565\/\">\u0441\u0442\u0440\u043e\u043a\u043e\u0432\u044b\u0435 \u0442\u0438\u043f\u044b<\/a> \u0432 Rust, \u0442\u0430\u043a \u0447\u0442\u043e \u0435\u0441\u043b\u0438 \u0432\u0430\u0441 \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u0443\u044e\u0442 \u043f\u043e\u0434\u0440\u043e\u0431\u043d\u043e\u0441\u0442\u0438, \u0442\u043e \u0440\u0435\u043a\u043e\u043c\u0435\u043d\u0434\u0443\u044e \u043e\u0437\u043d\u0430\u043a\u043e\u043c\u0438\u0442\u044c\u0441\u044f \u0441 \u043d\u0438\u043c\u0438. \u041d\u0443 \u0438\u043b\u0438 \u0441 <a href=\"https:\/\/doc.rust-lang.org\/book\/strings.html\">\u043e\u0444\u0438\u0446\u0438\u0430\u043b\u044c\u043d\u043e\u0439 \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u0435\u0439<\/a> (<a href=\"http:\/\/rurust.github.io\/rust_book_ru\/src\/strings.html\">\u043f\u0435\u0440\u0435\u0432\u043e\u0434<\/a>).<\/p>\n<p>  <\/p>\n<h4>\u041e\u0442\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u0435 \u043f\u0435\u0440\u0435\u0447\u0438\u0441\u043b\u0435\u043d\u0438\u044f \u043d\u0430 \u043c\u0430\u0441\u0441\u0438\u0432<\/h4>\n<p>  <\/p>\n<pre><code>enum COLORS { red, blue, green }  string[ COLORS.max + 1 ] cstring = [     COLORS.red : &quot;red&quot;,     COLORS.blue : &quot;blue&quot;,     COLORS.green : &quot;green&quot;, ];<\/code><\/pre>\n<p>  <\/p>\n<p>\u0410\u043d\u0430\u043b\u043e\u0433 \u043d\u0430 Rust \u0441 \u043f\u0440\u0438\u043c\u0435\u043d\u0435\u043d\u0438\u0435\u043c \u043c\u0430\u043a\u0440\u043e\u0441\u0430 collect! \u0431\u0443\u0434\u0435\u0442 \u0432\u044b\u0433\u043b\u044f\u0434\u0435\u0442\u044c \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u043c \u043e\u0431\u0440\u0430\u0437\u043e\u043c:<\/p>\n<p>  <\/p>\n<pre><code class=\"rust\">use std::collections::BTreeMap;  #[derive(PartialOrd, Ord, PartialEq, Eq)] enum Colors {     Red,     Blue,     Green, }  let cstring: BTreeMap&lt;_, _&gt; = collect![     Colors::Red   =&gt; &quot;red&quot;,     Colors::Blue  =&gt; &quot;blue&quot;,     Colors::Green =&gt; &quot;green&quot;, ];<\/code><\/pre>\n<p>  <\/p>\n<h4>\u0421\u043e\u0437\u0434\u0430\u043d\u0438\u0435 \u043d\u043e\u0432\u044b\u0445 \u0442\u0438\u043f\u043e\u0432<\/h4>\n<p>  <\/p>\n<p>D \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u0441\u043e\u0437\u0434\u0430\u0432\u0430\u0442\u044c \u043d\u043e\u0432\u044b\u0435 \u0442\u0438\u043f\u044b \u0438\u0437 \u0438\u043c\u0435\u044e\u0449\u0438\u0445\u0441\u044f (strong typedef):<\/p>\n<p>  <\/p>\n<pre><code>import std.typecons;  alias Handle = Typedef!( void* ); void foo( void* ); void bar( Handle );  Handle h; foo( h ); \/\/ syntax error bar( h ); \/\/ ok<\/code><\/pre>\n<p>  <\/p>\n<p>\u0412 \u0442\u043e\u043c \u0447\u0438\u0441\u043b\u0435, \u0441 \u0437\u0430\u0434\u0430\u043d\u0438\u0435\u043c \u0434\u0435\u0444\u043e\u043b\u0442\u043d\u043e\u0433\u043e \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f:<\/p>\n<p>  <\/p>\n<pre><code>alias Handle = Typedef!( void* , cast( void* ) -1 ); Handle h; h = func(); if( h != Handle.init ) {     ... }<\/code><\/pre>\n<p>  <\/p>\n<p>\u0412 Rust \u044d\u0442\u043e \u0434\u0435\u043b\u0430\u0435\u0442\u0441\u044f \u0447\u0435\u0440\u0435\u0437 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435 \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u044b-\u043a\u043e\u0440\u0442\u0435\u0436\u0430 (<a href=\"https:\/\/doc.rust-lang.org\/book\/structs.html#tuple-structs\">tuple struct<\/a>, <a href=\"http:\/\/rurust.github.io\/rust_book_ru\/src\/structs.html#%D0%9A%D0%BE%D1%80%D1%82%D0%B5%D0%B6%D0%BD%D1%8B%D0%B5-%D1%81%D1%82%D1%80%D1%83%D0%BA%D1%82%D1%83%D1%80%D1%8B\">\u043f\u0435\u0440\u0435\u0432\u043e\u0434<\/a>):<\/p>\n<p>  <\/p>\n<pre><code class=\"rust\">struct Handle(*mut i8);  fn foo(_: *mut i8) {} fn bar(_: Handle) {}  foo(h); \/\/ error bar(h); \/\/ ok<\/code><\/pre>\n<p>  <\/p>\n<p>\u0421\u043e\u0437\u0434\u0430\u0442\u044c \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u0431\u0435\u0437 \u0438\u043d\u0438\u0446\u0438\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438 Rust \u0438 \u0442\u0430\u043a \u043d\u0435 \u043f\u043e\u0437\u0432\u043e\u043b\u0438\u0442, \u0430 \u0434\u043b\u044f \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u044f \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u043f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e \u043f\u0440\u0430\u0432\u0438\u043b\u044c\u043d\u044b\u043c \u0431\u0443\u0434\u0435\u0442 \u0440\u0435\u0430\u043b\u0438\u0437\u043e\u0432\u0430\u0442\u044c \u0442\u0440\u0435\u0439\u0442 <a href=\"https:\/\/doc.rust-lang.org\/std\/default\/trait.Default.html\">Default<\/a>:<\/p>\n<p>  <\/p>\n<pre><code class=\"rust\">struct Handle(*mut i8);  impl Default for Handle {     fn default() -&gt; Self {         Handle(std::ptr::null_mut())     } }  let h = Handle::default();<\/code><\/pre>\n<p>  <\/p>\n<p><a href=\"http:\/\/is.gd\/nT3wq0\">[\u0417\u0430\u043f\u0443\u0441\u0442\u0438\u0442\u044c]<\/a><\/p>\n<p>  <\/p>\n<h4>\u0421\u0440\u0430\u0432\u043d\u0435\u043d\u0438\u0435 \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440<\/h4>\n<p>  <\/p>\n<pre><code>struct A {     int a; }  if (a1 == a2) { ... }<\/code><\/pre>\n<p>  <\/p>\n<pre><code class=\"rust\">#[derive(PartialEq)] struct A {     a: i32, }  if a1 == a2 { ... }<\/code><\/pre>\n<p>  <\/p>\n<p>\u0420\u0430\u0437\u043d\u0438\u0446\u0430 \u0442\u043e\u043b\u044c\u043a\u043e \u0432 \u0442\u043e\u043c, \u0447\u0442\u043e D \u043d\u0435\u044f\u0432\u043d\u043e \u0440\u0435\u0430\u043b\u0438\u0437\u0443\u0435\u0442 \u0434\u043b\u044f \u043d\u0430\u0441 \u043e\u043f\u0435\u0440\u0430\u0442\u043e\u0440 \u0441\u0440\u0430\u0432\u043d\u0435\u043d\u0438\u044f, \u0430 Rust \u043d\u0430\u0434\u043e \u043e\u0431 \u044d\u0442\u043e\u043c \u043f\u043e\u043f\u0440\u043e\u0441\u0438\u0442\u044c, <a href=\"http:\/\/is.gd\/HuR9UV\">\u0447\u0442\u043e \u043c\u044b \u0438 \u0434\u0435\u043b\u0430\u0435\u043c<\/a> \u0447\u0435\u0440\u0435\u0437 <code>#[derive(PartialEq)]<\/code>.<\/p>\n<p>  <\/p>\n<h4>\u0421\u0440\u0430\u0432\u043d\u0435\u043d\u0438\u0435 \u0441\u0442\u0440\u043e\u043a<\/h4>\n<p>  <\/p>\n<pre><code>string str = &quot;hello&quot;;  if( str == &quot;betty&quot; ) {     ... }  if( str &lt; &quot;betty&quot; ) {     ... }<\/code><\/pre>\n<p>  <\/p>\n<pre><code class=\"rust\">let str = &quot;hello&quot;;  if str == &quot;betty&quot; {     ... }  if str &lt; &quot;betty&quot; {     ... }<\/code><\/pre>\n<p>  <\/p>\n<p>\u0412 \u043e\u0431\u043e\u0438\u0445 \u044f\u0437\u044b\u043a\u0430\u0445 \u0441\u0442\u0440\u043e\u043a\u0438 \u043c\u043e\u0436\u043d\u043e \u0441\u0440\u0430\u0432\u043d\u0438\u0432\u0430\u0442\u044c \u043d\u0430 \u0440\u0430\u0432\u0435\u043d\u0441\u0442\u0432\u043e \u0438 \u0431\u043e\u043b\u044c\u0448\u0435\/\u043c\u0435\u043d\u044c\u0448\u0435.<\/p>\n<p>  <\/p>\n<h4>\u0421\u043e\u0440\u0442\u0438\u0440\u043e\u0432\u043a\u0430 \u043c\u0430\u0441\u0441\u0438\u0432\u043e\u0432<\/h4>\n<p>  <\/p>\n<p>D \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442 \u043e\u0431\u043e\u0431\u0449\u0451\u043d\u043d\u044b\u0435 \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438 \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c\u043e\u0432:<\/p>\n<p>  <\/p>\n<pre><code>import std.algorithm; type[] array; ... sort( array ); \/\/ sort array in-place array.sort!&quot;a&gt;b&quot; \/\/ using custom compare function array.sort!( ( a , b ) =&gt; ( a &gt; b ) )  \/\/ same as above<\/code><\/pre>\n<p>  <\/p>\n<p>\u0412 Rust \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u0434\u0440\u0443\u0433\u043e\u0439 \u043f\u043e\u0434\u0445\u043e\u0434: \u0441\u043e\u0440\u0442\u0438\u0440\u043e\u0432\u043a\u0430, \u043a\u0430\u043a \u0438 \u043d\u0435\u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0434\u0440\u0443\u0433\u0438\u0435 \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c\u044b, \u0440\u0435\u0430\u043b\u0438\u0437\u043e\u0432\u0430\u043d\u0430 \u0434\u043b\u044f &quot;\u0441\u0440\u0435\u0437\u043e\u0432&quot; (slice), \u0430 \u0442\u0435 \u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440\u044b, \u0434\u043b\u044f \u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u044d\u0442\u043e \u0438\u043c\u0435\u0435\u0442 \u0441\u043c\u044b\u0441\u043b, \u0443\u043c\u0435\u044e\u0442 \u043a \u043d\u0438\u043c \u043f\u0440\u0438\u0432\u043e\u0434\u0438\u0442\u044c\u0441\u044f. <\/p>\n<p>  <\/p>\n<pre><code class=\"rust\">let mut array = [3, 2, 1]; array.sort(); array.sort_by(|a, b| b.cmp(a));<\/code><\/pre>\n<p>  <\/p>\n<p><a href=\"http:\/\/is.gd\/xZEupU\">[\u0417\u0430\u043f\u0443\u0441\u0442\u0438\u0442\u044c]<\/a><br \/>  \u0418\u0437 \u043c\u0435\u043b\u043a\u0438\u0445 \u043e\u0442\u043b\u0438\u0447\u0438\u0439: \u0441\u0440\u0430\u0432\u043d\u0435\u043d\u0438\u0435 \u0434\u043e\u043b\u0436\u043d\u043e \u0432\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0442\u044c \u043d\u0435 <code>bool<\/code>, \u0430 <a href=\"https:\/\/doc.rust-lang.org\/std\/cmp\/enum.Ordering.html\">Ordering<\/a> (\u0431\u043e\u043b\u044c\u0448\u0435\/\u043c\u0435\u043d\u044c\u0448\u0435\/\u0440\u0430\u0432\u043d\u043e).<\/p>\n<p>  \u0414\u0430\u043d\u043d\u043e\u0435 \u0441\u0440\u0430\u0432\u043d\u0435\u043d\u0438\u0435 \u0437\u0430\u0441\u0442\u0430\u0432\u0438\u043b\u043e \u0437\u0430\u0434\u0443\u043c\u0430\u0442\u044c\u0441\u044f, \u043f\u043e\u0447\u0435\u043c\u0443 \u0432 Rust \u0441\u0434\u0435\u043b\u0430\u043d\u043e \u043d\u0435 \u0442\u0430\u043a \u043a\u0430\u043a \u0432 D \u0438\u043b\u0438 \u0421++. \u041d\u0430\u0432\u0441\u043a\u0438\u0434\u043a\u0443 \u043d\u0435 \u0432\u0438\u0436\u0443 \u043f\u0440\u0435\u0438\u043c\u0443\u0449\u0435\u0441\u0442\u0432 \u0438 \u043d\u0435\u0434\u043e\u0441\u0442\u0430\u0442\u043a\u043e\u0432 \u043e\u0431\u043e\u0438\u0445 \u043f\u043e\u0434\u0445\u043e\u0434\u043e\u0432, \u0442\u0430\u043a \u0447\u0442\u043e \u0441\u043f\u0438\u0448\u0435\u043c \u043f\u0440\u043e\u0441\u0442\u043e \u043d\u0430 \u043e\u0441\u043e\u0431\u0435\u043d\u043d\u043e\u0441\u0442\u0438 \u044f\u0437\u044b\u043a\u0430.<\/p>\n<p>  <\/p>\n<h4>\u0421\u0442\u0440\u043e\u043a\u043e\u0432\u044b\u0435 \u043b\u0438\u0442\u0435\u0440\u0430\u043b\u044b<\/h4>\n<p>  <\/p>\n<pre><code>&quot;This text \\&quot;spans\\&quot; multiple lines &quot;<\/code><\/pre>\n<p>  <\/p>\n<pre><code class=\"rust\">&quot;This text \\&quot;spans\\&quot; multiple lines &quot;<\/code><\/pre>\n<p>  <\/p>\n<p>\u041e\u0431\u0430 \u044f\u0437\u044b\u043a\u0430 \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u044e\u0442 \u043c\u043d\u043e\u0433\u043e\u0441\u0442\u0440\u043e\u0447\u043d\u044b\u0435 \u0441\u0442\u0440\u043e\u043a\u043e\u0432\u044b\u0435 \u043a\u043e\u043d\u0441\u0442\u0430\u043d\u0442\u044b.<\/p>\n<p>  <\/p>\n<h4>\u041e\u0431\u0445\u043e\u0434 \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440 \u0434\u0430\u043d\u043d\u044b\u0445<\/h4>\n<p>  <\/p>\n<p>\u041d\u0435\u0441\u043c\u043e\u0442\u0440\u044f \u043d\u0430 \u043d\u0430\u0437\u0432\u0430\u043d\u0438\u0435, \u0432 \u044d\u0442\u043e\u043c \u043f\u0443\u043d\u043a\u0442\u0435, \u043f\u043e \u043c\u043e\u0435\u043c\u0443, \u0434\u0435\u043c\u043e\u043d\u0441\u0442\u0440\u0438\u0440\u0443\u0435\u0442\u0441\u044f \u0442\u043e\u043b\u044c\u043a\u043e \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u044c \u0432\u043b\u043e\u0436\u0435\u043d\u043d\u044b\u0445 \u0444\u0443\u043d\u043a\u0446\u0438\u0439 \u043e\u0431\u0440\u0430\u0449\u0430\u0442\u044c\u0441\u044f \u043a \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u043c \u043e\u0431\u044a\u044f\u0432\u043b\u0435\u043d\u043d\u044b\u043c \u0432 \u0432\u043d\u0435\u0448\u043d\u0438\u0445, \u0442\u0430\u043a \u0447\u0442\u043e \u044f \u0432\u0437\u044f\u043b \u043d\u0430 \u0441\u0435\u0431\u044f \u0441\u043c\u0435\u043b\u043e\u0441\u0442\u044c \u043f\u0435\u0440\u0435\u043f\u0438\u0441\u0430\u0442\u044c \u043a\u043e\u0434:<\/p>\n<p>  <\/p>\n<pre><code>void foo() {     int a = 10;      void bar() {         a = 20;     }      bar(); }<\/code><\/pre>\n<p>  <\/p>\n<p>\u0412 Rust \u043c\u043e\u0436\u043d\u043e \u043e\u0431\u044a\u044f\u0432\u043b\u044f\u0442\u044c \u0432\u043b\u043e\u0436\u0435\u043d\u043d\u044b\u0435 \u0444\u0443\u043d\u043a\u0446\u0438\u0438, \u043d\u043e \u0437\u0430\u0445\u0432\u0430\u0442\u044b\u0432\u0430\u0442\u044c \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0435 \u043e\u043d\u0438 \u043d\u0435 \u043c\u043e\u0433\u0443\u0442, \u0434\u043b\u044f \u044d\u0442\u043e\u0433\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044e\u0442\u0441\u044f \u0437\u0430\u043c\u044b\u043a\u0430\u043d\u0438\u044f:<\/p>\n<p>  <\/p>\n<pre><code class=\"rust\">fn foo() {     let mut a = 10;      fn bar() {         \/\/a = 20; \/\/ Error.     }      let mut baz = || { a = 20 };     baz(); }<\/code><\/pre>\n<p>  <\/p>\n<p><a href=\"http:\/\/is.gd\/DkGuzc\">[\u0417\u0430\u043f\u0443\u0441\u0442\u0438\u0442\u044c]<\/a><\/p>\n<p>  <\/p>\n<h4>\u0414\u0438\u043d\u0430\u043c\u0438\u0447\u0435\u0441\u043a\u0438\u0435 \u0437\u0430\u043c\u044b\u043a\u0430\u043d\u0438\u044f<\/h4>\n<p>  <\/p>\n<p>\u0412 Rust \u0442\u043e\u0436\u0435 \u0438\u043c\u0435\u044e\u0442\u0441\u044f \u043b\u044f\u0431\u043c\u0434\u044b\/\u0434\u0435\u043b\u0435\u0433\u0430\u0442\u044b\/\u0437\u0430\u043c\u044b\u043a\u0430\u043d\u0438\u044f. \u041f\u0440\u0438\u043c\u0435\u0440 \u0431\u044b\u043b \u0432\u044b\u0448\u0435 \u043f\u043e \u0442\u0435\u043a\u0441\u0442\u0443, \u043d\u0443 \u0430 \u0435\u0441\u043b\u0438 \u0432\u0430\u043c \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u043d\u044b \u043f\u043e\u0434\u0440\u043e\u0431\u043d\u043e\u0441\u0442\u0438, \u0442\u043e \u0437\u0430\u0433\u043b\u044f\u043d\u0438\u0442\u0435 \u0432 <a href=\"https:\/\/doc.rust-lang.org\/book\/closures.html\">\u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u044e<\/a> (<a href=\"http:\/\/rurust.github.io\/rust_book_ru\/src\/closures.html\">\u043f\u0435\u0440\u0435\u0432\u043e\u0434<\/a>).<\/p>\n<p>  <\/p>\n<h4>\u041f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u043e\u0435 \u0447\u0438\u0441\u043b\u043e \u0430\u0440\u0433\u0443\u043c\u0435\u043d\u0442\u043e\u0432<\/h4>\n<p>  <\/p>\n<p>\u0412 D \u0435\u0441\u0442\u044c \u0441\u043f\u0435\u0446\u0438\u0430\u043b\u044c\u043d\u0430\u044f \u043a\u043e\u043d\u0441\u0442\u0440\u0443\u043a\u0446\u0438\u044f &quot;&#8230;&quot; \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u044e\u0449\u0430\u044f \u043f\u0440\u0438\u043d\u044f\u0442\u044c \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u043e\u0432 \u0432 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435 \u043e\u0434\u043d\u043e\u0433\u043e \u0442\u0438\u043f\u0438\u0437\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u043e\u0433\u043e \u043c\u0430\u0441\u0441\u0438\u0432\u0430:<\/p>\n<p>  <\/p>\n<pre><code>import std.stdio;  int sum( int[] values ... ) {     int s = 0;      foreach( int x ; values ) {         s += x;     }     return s; }  int main() {     writefln( &quot;sum = %d&quot;, sum( 8 , 7 , 6 ) );      int[] ints = [ 8 , 7 , 6 ];     writefln( &quot;sum = %d&quot;, sum( ints ) );      return 0; }<\/code><\/pre>\n<p>  <\/p>\n<p>Rust \u043d\u0435 \u0438\u043c\u0435\u0435\u0442 \u043f\u0440\u044f\u043c\u043e\u0439 \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u0438 \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u043e\u0433\u043e \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u0430 \u0430\u0440\u0433\u0443\u043c\u0435\u043d\u0442\u043e\u0432, \u0432\u043c\u0435\u0441\u0442\u043e \u044d\u0442\u043e\u0433\u043e \u043f\u0440\u0435\u0434\u043b\u0430\u0433\u0430\u0435\u0442\u0441\u044f \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0441\u0440\u0435\u0437\u044b \u0438\u043b\u0438 \u0438\u0442\u0435\u0440\u0430\u0442\u043e\u0440\u044b:<\/p>\n<p>  <\/p>\n<pre><code class=\"rust\">fn sum(values: &amp;[i32]) -&gt; i32 {     let mut res = 0;     for val in values {         res += *val;     }     res }  fn main() {     println!(&quot;{}&quot;, sum(&amp;[1, 2, 3]));      let ints = vec![3, 4, 5];     println!(&quot;{}&quot;, sum(&amp;ints)); }<\/code><\/pre>\n<p>  <\/p>\n<p><a href=\"http:\/\/is.gd\/edtGTv\">[\u0417\u0430\u043f\u0443\u0441\u0442\u0438\u0442\u044c]<\/a><\/p>\n<p>  <\/p>\n<h4>\u0417\u0430\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435<\/h4>\n<p>  <\/p>\n<p>\u0412\u043e\u0442 \u0438 \u0432\u0441\u0451. \u041a\u043e\u043d\u0435\u0447\u043d\u043e, \u0441\u0440\u0430\u0432\u043d\u0435\u043d\u0438\u0435 \u0434\u0432\u0443\u0445 \u044f\u0437\u044b\u043a\u043e\u0432, \u043e\u0442\u0442\u0430\u043b\u043a\u0438\u0432\u0430\u044e\u0449\u0435\u0435\u0441\u044f \u043e\u0442 \u043e\u0441\u043e\u0431\u0435\u043d\u043d\u043e\u0441\u0442\u0435\u0439 \u0442\u0440\u0435\u0442\u044c\u0435\u0433\u043e, \u043f\u043e\u043b\u0443\u0447\u0430\u0435\u0442\u0441\u044f \u0434\u043e\u0432\u043e\u043b\u044c\u043d\u043e \u0441\u043f\u0435\u0446\u0438\u0444\u0438\u0447\u0435\u0441\u043a\u0438\u043c, \u043d\u043e \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0451\u043d\u043d\u044b\u0435 \u0432\u044b\u0432\u043e\u0434\u044b \u0441\u0434\u0435\u043b\u0430\u0442\u044c \u043c\u043e\u0436\u043d\u043e. \u041f\u0440\u0435\u0434\u043b\u0430\u0433\u0430\u044e \u0432\u0430\u043c \u0441\u0434\u0435\u043b\u0430\u0442\u044c \u0438\u0445 \u0441\u0430\u043c\u043e\u0441\u0442\u043e\u044f\u0442\u0435\u043b\u044c\u043d\u043e.<\/p>\n<p>  \u041d\u0443 \u0438 \u043f\u043e \u0442\u0440\u0430\u0434\u0438\u0446\u0438\u0438 \u0441\u0434\u0435\u043b\u0430\u0435\u043c \u0437\u0430\u0433\u043e\u043b\u043e\u0432\u043e\u043a <a href=\"http:\/\/is.gd\/SBC5Uq\">\u043a\u043e\u043c\u043f\u0438\u043b\u0438\u0440\u0443\u044e\u0449\u0438\u043c\u0441\u044f<\/a>:<\/p>\n<p>  <\/p>\n<pre><code class=\"rust\">macro_rules! man {     (C =&gt; D) =&gt; {{         &quot;https:\/\/habrahabr.ru\/post\/276227\/&quot;     }};     (C =&gt; D =&gt; Rust) =&gt; {{         &quot;https:\/\/habrahabr.ru\/post\/280904\/&quot;     }};     (Rust =&gt; $any:tt) =&gt; {{         &quot;You are doing it wrong!&quot;     }}; }  fn main() {     println!(&quot;{}&quot;, man!(C =&gt; D));     println!(&quot;{}&quot;, man!(C =&gt; D =&gt; Rust));     println!(&quot;{}&quot;, man!(Rust =&gt; C));     println!(&quot;{}&quot;, man!(Rust =&gt; D)); }<\/code><\/pre>\n<div class=\"clear\"><\/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:\/\/habrahabr.ru\/post\/280904\/\"> https:\/\/habrahabr.ru\/post\/280904\/<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"\n<p><a href=\"https:\/\/habrahabr.ru\/post\/280642\/\">\u041f\u0440\u0435\u0434\u044b\u0434\u0443\u0449\u0443\u044e \u0441\u0442\u0430\u0442\u044c\u044e<\/a> \u0432\u043e\u0441\u043f\u0440\u0438\u043d\u044f\u043b\u0438 \u043b\u0443\u0447\u0448\u0435, \u0447\u0435\u043c \u044f \u043e\u0436\u0438\u0434\u0430\u043b, \u0442\u0430\u043a \u0447\u0442\u043e \u0440\u0435\u0448\u0438\u043b\u0441\u044f \u043d\u0430 \u043f\u0440\u043e\u0434\u043e\u043b\u0436\u0435\u043d\u0438\u0435 \u044d\u043a\u0441\u043f\u0435\u0440\u0438\u043c\u0435\u043d\u0442\u0430. \u042d\u0442\u043e \u0441\u0432\u043e\u0435\u043e\u0431\u0440\u0430\u0437\u043d\u044b\u0439 \u043e\u0442\u0432\u0435\u0442 \u043d\u0430 <a href=\"https:\/\/habrahabr.ru\/post\/276227\/\">\u043f\u0435\u0440\u0435\u0432\u043e\u0434 \u0441\u0442\u0430\u0442\u044c\u0438<\/a> <a href=\"http:\/\/dlang.org\/ctod.html\">Programming in D for C Programmers<\/a> \u0437\u0430 \u0430\u0432\u0442\u043e\u0440\u0441\u0442\u0432\u043e\u043c \u0414\u043c\u0438\u0442\u0440\u0438\u044f aka  <a href=\"https:\/\/habrahabr.ru\/users\/vintage\/\" class=\"user_link\">vintage<\/a>. \u041a\u0430\u043a \u043c\u043d\u0435 \u043a\u0430\u0436\u0435\u0442\u0441\u044f, \u0432 \u043e\u0431\u043b\u0430\u0441\u0442\u0438 \u043f\u0440\u0438\u043c\u0435\u043d\u0435\u043d\u0438\u044f C Rust \u0431\u043e\u043b\u0435\u0435 \u0443\u043c\u0435\u0441\u0442\u0435\u043d, \u0447\u0435\u043c \u0437\u0430\u043c\u0435\u043d\u0430 Go, \u043a\u0430\u043a \u043f\u0440\u0435\u0434\u043f\u043e\u043b\u0430\u0433\u0430\u043b\u043e\u0441\u044c \u0432 \u043f\u0440\u043e\u0448\u043b\u043e\u0439 \u0441\u0442\u0430\u0442\u044c\u0435. \u0422\u0435\u043c \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u043d\u0435\u0435 \u0431\u0443\u0434\u0435\u0442 \u0441\u0440\u0430\u0432\u043d\u0438\u0442\u044c. \u041e\u043f\u044f\u0442\u044c \u0442\u0430\u043a\u0438, \u043a\u043e\u0434 \u043d\u0430 \u0421 \u043f\u0440\u0438\u0432\u043e\u0434\u0438\u0442\u044c \u043d\u0435 \u0431\u0443\u0434\u0443, \u0442\u0435\u043c \u0431\u043e\u043b\u0435\u0435 \u0447\u0442\u043e \u0430\u043d\u0430\u043b\u043e\u0433 \u043d\u0430 D \u0432\u0441\u0451 \u0440\u0430\u0432\u043d\u043e \u0441\u043c\u043e\u0442\u0440\u0438\u0442\u0441\u044f \u043b\u0430\u043a\u043e\u043d\u0438\u0447\u043d\u0435\u0435.<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[],"tags":[],"class_list":["post-277997","post","type-post","status-publish","format-standard","hentry"],"_links":{"self":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/277997","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=277997"}],"version-history":[{"count":0,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/277997\/revisions"}],"wp:attachment":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=277997"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=277997"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=277997"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}