Rust: рд▓реВрдк рдХреЗ рд▓рд┐рдП рдЯрдкрд▓ рдбрд┐рд╕реНрдЯреНрд░рдХреНрдЪрд░ рдореЗрдВ рд▓рд╛рдкрддрд╛ рдорд╛рддрд╛-рдкрд┐рддрд╛ рдХреЗ рд▓рд┐рдП рддреНрд░реБрдЯрд┐ рд╕рдВрджреЗрд╢ рдореЗрдВ рд╕реБрдзрд╛рд░ рдХрд░реЗрдВ

рдХреЛ рдирд┐рд░реНрдорд┐рдд 24 рдлрд╝рд░ре░ 2018  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ  ┬╖  рд╕реНрд░реЛрдд: rust-lang/rust

рджрд┐рдпрд╛ рдЧрдпрд╛:

    for foo, bar in [(1, 2), (3, 4)] {}

рд░рд╕реНрдЯрд╕реА рдЙрддреНрдкрд╛рджрди рдХрд░рддрд╛ рд╣реИ:

error: missing `in` in `for` loop
  --> src/main.rs:44:12
   |
44 |     for foo, bar in [(1, 2)] {}
   |            ^ help: try adding `in` here

error: expected expression, found `,`
  --> src/main.rs:44:12
   |
44 |     for foo, bar in [(1, 2)] {}
   |            ^

... рд▓реЗрдХрд┐рди рдпрд╣ рдмреЗрд╣рддрд░ рд╣реЛрдЧрд╛ рдпрджрд┐ рдпрд╣ рдкрддрд╛ рд▓рдЧрд╛рдпрд╛ рдЬрд╛рдП рдХрд┐ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХрд╛ рдЗрд░рд╛рджрд╛ рд╕рдВрднрд╡рддрдГ for (foo, bar) in ... , рдФрд░ рдПрдХ рдЕрдзрд┐рдХ рд╡рд┐рд╢рд┐рд╖реНрдЯ рддреНрд░реБрдЯрд┐ рд╕рдВрджреЗрд╢ рджрд┐рдпрд╛ рд╣реИред

рдпрд╣ рд╢рд╛рдпрдж рдкрд╛рдЗрдерди рд╕реЗ рдЖрдиреЗ рд╡рд╛рд▓реА рдХреБрдЫ рд╕рд╛рдорд╛рдиреНрдп рддреНрд░реБрдЯрд┐ рд╣реИ, рдЬрд┐рд╕рдореЗрдВ for рд▓реВрдк рдХреЗ рд▓рд┐рдП рд╕рдорд╛рди рд╡рд╛рдХреНрдпрд╡рд┐рдиреНрдпрд╛рд╕ рд╣реИ рд▓реЗрдХрд┐рди рдХреЛрд╖реНрдардХ рдХреЛ рдЫреЛрдбрд╝рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред

рд╕рдмрд╕реЗ рдЙрдкрдпреЛрдЧреА рдЯрд┐рдкреНрдкрдгреА

рдпрджрд┐ рдпрд╣ рдХреБрдЫ рдкрд╛рдпрдерди-рдкреНрд░реЗрд░рд┐рдд рд╣реИ, рддреЛ рдпреЗ рдирд┐рджрд╛рди/рд╡рд╕реВрд▓реА рдЖрджрд░реНрд╢ рд░реВрдк рд╕реЗ let рдкрд░ рднреА рд▓рд╛рдЧреВ рд╣реЛрдиреА рдЪрд╛рд╣рд┐рдПред

let a, b = (10, 11);

=>

let (a, b) = (10, 11);

рдореБрдЭреЗ рд╕рдВрджреЗрд╣ рд╣реИ рдХрд┐ рд╣рдо рдЗрд╕ рдкреБрдирд░реНрдкреНрд░рд╛рдкреНрддрд┐ рдХреЛ рд╕рднреА рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐ рдФрд░ рдкреИрдЯрд░реНрди рд╕рдВрджрд░реНрднреЛрдВ рдореЗрдВ "рдСрдЯреЛ-рдЯреБрдкрд▓рд┐рдВрдЧ" рдХреЗ рд░реВрдк рдореЗрдВ рднреА рдХрд╛рд░реНрдпрд╛рдиреНрд╡рд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

illegal a, b, c

=>

(a, b, c)

рд╕рднреА 3 рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

рдпрджрд┐ рдпрд╣ рдХреБрдЫ рдкрд╛рдпрдерди-рдкреНрд░реЗрд░рд┐рдд рд╣реИ, рддреЛ рдпреЗ рдирд┐рджрд╛рди/рд╡рд╕реВрд▓реА рдЖрджрд░реНрд╢ рд░реВрдк рд╕реЗ let рдкрд░ рднреА рд▓рд╛рдЧреВ рд╣реЛрдиреА рдЪрд╛рд╣рд┐рдПред

let a, b = (10, 11);

=>

let (a, b) = (10, 11);

рдореБрдЭреЗ рд╕рдВрджреЗрд╣ рд╣реИ рдХрд┐ рд╣рдо рдЗрд╕ рдкреБрдирд░реНрдкреНрд░рд╛рдкреНрддрд┐ рдХреЛ рд╕рднреА рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐ рдФрд░ рдкреИрдЯрд░реНрди рд╕рдВрджрд░реНрднреЛрдВ рдореЗрдВ "рдСрдЯреЛ-рдЯреБрдкрд▓рд┐рдВрдЧ" рдХреЗ рд░реВрдк рдореЗрдВ рднреА рдХрд╛рд░реНрдпрд╛рдиреНрд╡рд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

illegal a, b, c

=>

(a, b, c)

:+1: рд╕рд┐рд░реНрдл рдкрд╛рдпрдерди рд╣реА рдирд╣реАрдВ, рдпрд╣ рдЧреЛ рдпреВрдЬрд░реНрд╕ рдХреЗ рд▓рд┐рдП рднреА рдорджрджрдЧрд╛рд░ рд╣реЛрдЧрд╛ред

for k, v := range myMap {
    x, err = /* ... */
}

(рдореИрдВрдиреЗ рдЗрд╕ рдкрд░ рдХреБрдЫ рдкреНрд░рдЧрддрд┐ рдХреА рд╣реИ; рдкреАрдЖрд░ рдЖрдЧрд╛рдореА)

рдХреНрдпрд╛ рдпрд╣ рдкреГрд╖реНрда рдЙрдкрдпреЛрдЧреА рдерд╛?
0 / 5 - 0 рд░реЗрдЯрд┐рдВрдЧреНрд╕

рд╕рдВрдмрдВрдзрд┐рдд рдореБрджреНрджреЛрдВ

SharplEr picture SharplEr  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

lambda-fairy picture lambda-fairy  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

jmegaffin picture jmegaffin  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

behnam picture behnam  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

zhendongsu picture zhendongsu  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ