рдЧреЛ рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рднрд╛рд╖рд╛ 1.18

Go 1.18 рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рд▓рдБрдЧреНрд╡реЗрдЬрдЪреЗ рдкреНрд░рдХрд╛рд╢рди рд╕рд╛рджрд░ рдХреЗрд▓реЗ рдЧреЗрд▓реЗ рдЖрд╣реЗ, рдЬреА Google рджреНрд╡рд╛рд░реЗ рд╕рдореБрджрд╛рдпрд╛рдЪреНрдпрд╛ рд╕рд╣рднрд╛рдЧрд╛рд╕рд╣ рд╕рдВрдХрд░рд┐рдд рд╕реЛрд▓реНрдпреВрд╢рди рдореНрд╣рдгреВрди рд╡рд┐рдХрд╕рд┐рдд рдХреЗрд▓реА рдЬрд╛рдд рдЖрд╣реЗ рдЬреА рд╕рдВрдХрд▓рд┐рдд рднрд╛рд╖рд╛рдВрдЪреНрдпрд╛ рдЙрдЪреНрдЪ рдХрд╛рд░реНрдпрдХреНрд╖рдорддреЗрд╕рд╣ рд╕реНрдХреНрд░рд┐рдкреНрдЯрд┐рдВрдЧ рднрд╛рд╖рд╛рдВрдЪреЗ рдХреЛрдб рд▓рд┐рд╣рд┐рдгреЗ рд╕реЛрдкреЗ рдЖрд╣реЗ рдЕрд╢рд╛ рдлрд╛рдпрджреНрдпрд╛рдВрд╕рд╣ рдПрдХрддреНрд░рд┐рдд рдХрд░рддреЗ. , рд╡рд┐рдХрд╛рд╕рд╛рдЪреА рдЧрддреА рдЖрдгрд┐ рддреНрд░реБрдЯреА рд╕рдВрд░рдХреНрд╖рдг. рдкреНрд░рдХрд▓реНрдк рдХреЛрдб рдмреАрдПрд╕рдбреА рдкрд░рд╡рд╛рдиреНрдпрд╛рдЕрдВрддрд░реНрдЧрдд рд╡рд┐рддрд░рд┐рдд рдХреЗрд▓рд╛ рдЬрд╛рддреЛ.

рдЧреЛ рдЪреЗ рд╡рд╛рдХреНрдпрд░рдЪрдирд╛ C рднрд╛рд╖реЗрдЪреНрдпрд╛ рдкрд░рд┐рдЪрд┐рдд рдШрдЯрдХрд╛рдВрд╡рд░ рдЖрдзрд╛рд░рд┐рдд рдЖрд╣реЗ рдЬреНрдпрд╛рдд рдкрд╛рдпрдерди рднрд╛рд╖реЗрддреВрди рдХрд╛рд╣реА рдХрд░реНрдЬ рдШреЗрддрд▓реЗ рдЖрд╣реЗ. рднрд╛рд╖рд╛ рдЕрдЧрджреА рд╕рдВрдХреНрд╖рд┐рдкреНрдд рдЖрд╣реЗ, рдкрд░рдВрддреБ рдХреЛрдб рд╡рд╛рдЪрдгреНрдпрд╛рд╕ рдЖрдгрд┐ рд╕рдордЬрдгреНрдпрд╛рд╕ рд╕реЛрдкрд╛ рдЖрд╣реЗ. рдЧреЛ рдХреЛрдб рд╕реНрдЯрдБрдб-рдЕрд▓реЛрди рдмрд╛рдпрдирд░реА рдПрдХреНрдЭрд┐рдХреНрдпреБрдЯреЗрдмрд▓ рдлрд╛рдЗрд▓реНрд╕рдордзреНрдпреЗ рд╕рдВрдХрд▓рд┐рдд рдХреЗрд▓рд╛ рдЬрд╛рддреЛ рдЬреНрдпрд╛ рд╡реНрд╣рд░реНрдЪреНрдпреБрдЕрд▓ рдорд╢реАрди (рдкреНрд░реЛрдлрд╛рдЗрд▓рд┐рдВрдЧ, рдбреАрдмрдЧрд┐рдВрдЧ рдореЙрдбреНрдпреВрд▓реНрд╕ рдЖрдгрд┐ рдЗрддрд░ рд░рдирдЯрд╛рдЗрдо рд╕рдорд╕реНрдпрд╛ рд╢реЛрдзрдгреЗ рдЙрдкрдкреНрд░рдгрд╛рд▓реА рд░рдирдЯрд╛рдЗрдо рдШрдЯрдХ рдореНрд╣рдгреВрди рдПрдХрддреНрд░рд┐рдд рдХреЗрд▓реНрдпрд╛ рдЬрд╛рддрд╛рдд) рди рд╡рд╛рдкрд░рддрд╛ рдЪрд╛рд▓рддрд╛рдд, рдЬреЗ C рдкреНрд░реЛрдЧреНрд░рд╛рдорд╢реА рддреБрд▓рдирд╛ рдХрд░рддрд╛ рдпреЗрдгреНрдпрд╛рдЬреЛрдЧреНрдпрд╛ рдХрд╛рд░реНрдпрдкреНрд░рджрд░реНрд╢рдирд╛рд╕ рдЕрдиреБрдорддреА рджреЗрддреЗ.

рд╣рд╛ рдкреНрд░рдХрд▓реНрдк рд╕реБрд░реБрд╡рд╛рддреАрд▓рд╛ рдорд▓реНрдЯреА-рдереНрд░реЗрдбреЗрдб рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рдЖрдгрд┐ рдорд▓реНрдЯреА-рдХреЛрд░ рд╕рд┐рд╕реНрдЯрдореНрд╕рд╡рд░ рдХрд╛рд░реНрдпрдХреНрд╖рдо рдСрдкрд░реЗрд╢рдирдХрдбреЗ рд▓рдХреНрд╖ рджреЗрдКрди рд╡рд┐рдХрд╕рд┐рдд рдХреЗрд▓рд╛ рдЧреЗрд▓рд╛ рдЖрд╣реЗ, рдЬреНрдпрд╛рдордзреНрдпреЗ рд╕рдорд╛рдВрддрд░ рд╕рдВрдЧрдгрди рдЖрдгрд┐ рд╕рдорд╛рдВрддрд░-рдЕрдВрдорд▓рдмрдЬрд╛рд╡рдгреА рдХреЗрд▓реЗрд▓реНрдпрд╛ рдкрджреНрдзрддреАрдВрдордзреАрд▓ рдкрд░рд╕реНрдкрд░рд╕рдВрд╡рд╛рдж рдЖрдпреЛрдЬрд┐рдд рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рдСрдкрд░реЗрдЯрд░-рд╕реНрддрд░реАрдп рдорд╛рдзреНрдпрдо рдкреНрд░рджрд╛рди рдХрд░рдгреЗ рд╕рдорд╛рд╡рд┐рд╖реНрдЯ рдЖрд╣реЗ. рднрд╛рд╖рд╛ рдЬрд╛рд╕реНрдд рд╡рд╛рдЯрдк рдХреЗрд▓реЗрд▓реНрдпрд╛ рдореЗрдорд░реА рдмреНрд▓реЙрдХреНрд╕рдкрд╛рд╕реВрди рдЕрдВрдЧрднреВрдд рд╕рдВрд░рдХреНрд╖рдг рджреЗрдЦреАрд▓ рдкреНрд░рджрд╛рди рдХрд░рддреЗ рдЖрдгрд┐ рдХрдЪрд░рд╛ рд╕рдВрдХрд▓рдХ рд╡рд╛рдкрд░рдгреНрдпрд╛рдЪреА рдХреНрд╖рдорддрд╛ рдкреНрд░рджрд╛рди рдХрд░рддреЗ.

рдирд╡реАрди рдЖрд╡реГрддреНрддреА рдЬреЗрдиреЗрд░рд┐рдХ рдлрдВрдХреНрд╢рдиреНрд╕ рдЖрдгрд┐ рдкреНрд░рдХрд╛рд░рд╛рдВрд╕рд╛рдареА (рдЬреЗрдиреЗрд░рд┐рдХ) рд╕рдорд░реНрдерди рдЬреЛрдбрддреЗ, рдЬреНрдпрд╛рдЪреНрдпрд╛ рдорджрддреАрдиреЗ рд╡рд┐рдХрд╛рд╕рдХ рдПрдХрд╛рдЪ рд╡реЗрд│реА рдЕрдиреЗрдХ рдкреНрд░рдХрд╛рд░рд╛рдВрд╕рд╣ рдХрд╛рд░реНрдп рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рдбрд┐рдЭрд╛рдЗрди рдХреЗрд▓реЗрд▓реА рдХрд╛рд░реНрдпреЗ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдЖрдгрд┐ рд╡рд╛рдкрд░реВ рд╢рдХрддреЛ. рдПрдХрд╛рдзрд┐рдХ рдбреЗрдЯрд╛ рдкреНрд░рдХрд╛рд░рд╛рдВрдЪрд╛ рд╡рд┐рд╕реНрддрд╛рд░ рдХрд░рдгрд╛рд░реЗ рдПрдХрддреНрд░рд┐рдд рдкреНрд░рдХрд╛рд░ рддрдпрд╛рд░ рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рдЗрдВрдЯрд░рдлреЗрд╕ рд╡рд╛рдкрд░рдгреЗ рджреЗрдЦреАрд▓ рд╢рдХреНрдп рдЖрд╣реЗ. рд╡рд┐рджреНрдпрдорд╛рди рдХреЛрдбрд╕рд╣ рдмреЕрдХрд╡рд░реНрдб рд╕реБрд╕рдВрдЧрддрддрд╛ рдЦрдВрдбрд┐рдд рди рдХрд░рддрд╛ рдЬреЗрдиреЗрд░рд┐рдХрд╕рд╛рдареА рд╕рдорд░реНрдерди рд▓рд╛рдЧреВ рдХреЗрд▓реЗ рдЬрд╛рддреЗ. // рд╕рдо рд╕реЗрдЯ рд╡реНрд╣реЕрд▓реНрдпреВрдЬ, int64 рдЖрдгрд┐ float64 рдкреНрд░рдХрд╛рд░рд╛рдВрд╕рд╛рдареА рдХрд╛рд░реНрдп рдХрд░рддреЗ func SumIntsOrFloats[K comparable, V int64 | float64](m рдирдХрд╛рд╢рд╛[K]V) V { var s V рд╕рд╛рдареА _, v := рд╢реНрд░реЗрдгреА m { s += v } рд░рд┐рдЯрд░реНрди s } // рд╕рд╛рдорд╛рдиреНрдп рдкреНрд░рдХрд╛рд░ рдкрд░рд┐рднрд╛рд╖рд╛рд╕рд╣ рджреБрд╕рд░рд╛ рдкрд░реНрдпрд╛рдп: рдкреНрд░рдХрд╛рд░ рдХреНрд░рдорд╛рдВрдХ рдЗрдВрдЯрд░рдлреЗрд╕ { int64 | float64 } func SumNumbers[K comparable, V Number](m рдирдХрд╛рд╢рд╛[K]V) V { var s V for _, v := рд╢реНрд░реЗрдгреА m { s += v } return s }

рдЗрддрд░ рд╕реБрдзрд╛рд░рдгрд╛:

  • рдлрдЭрд┐рдВрдЧ рдХреЛрдб рдЪрд╛рдЪрдгреАрд╕рд╛рдареА рдЙрдкрдпреБрдХреНрддрддрд╛ рдорд╛рдирдХ рдЯреВрд▓рдХрд┐рдЯрдордзреНрдпреЗ рдПрдХрддреНрд░рд┐рдд рдХреЗрд▓реНрдпрд╛ рдЖрд╣реЗрдд. рдлрдЭрд┐рдВрдЧ рдЪрд╛рдЪрдгреА рджрд░рдореНрдпрд╛рди, рдЗрдирдкреБрдЯ рдбреЗрдЯрд╛рдЪреНрдпрд╛ рд╕рд░реНрд╡ рд╕рдВрднрд╛рд╡реНрдп рдпрд╛рджреГрдЪреНрдЫрд┐рдХ рд╕рдВрдпреЛрдЬрдирд╛рдВрдЪрд╛ рдПрдХ рдкреНрд░рд╡рд╛рд╣ рддрдпрд╛рд░ рдХреЗрд▓рд╛ рдЬрд╛рддреЛ рдЖрдгрд┐ рддреНрдпрд╛рдВрдЪреНрдпрд╛ рдкреНрд░рдХреНрд░рд┐рдпреЗрджрд░рдореНрдпрд╛рди рд╕рдВрднрд╛рд╡реНрдп рдЕрдкрдпрд╢ рд░реЗрдХреЙрд░реНрдб рдХреЗрд▓реЗ рдЬрд╛рддрд╛рдд. рдЬрд░ рдПрдЦрд╛рджрд╛ рдХреНрд░рдо рдХреНрд░реЕрд╢ рдЭрд╛рд▓рд╛ рдХрд┐рдВрд╡рд╛ рдЕрдкреЗрдХреНрд╖рд┐рдд рдкреНрд░рддрд┐рд╕рд╛рджрд╛рд╢реА рдЬреБрд│рдд рдирд╕реЗрд▓, рддрд░ рд╣реЗ рд╡рд░реНрддрди рдмрдЧ рдХрд┐рдВрд╡рд╛ рднреЗрджреНрдпрддрд╛ рджрд░реНрд╢рд╡рдгреНрдпрд╛рдЪреА рджрд╛рдЯ рд╢рдХреНрдпрддрд╛ рдЖрд╣реЗ.
  • рдорд▓реНрдЯреА-рдореЙрдбреНрдпреБрд▓рд░ рд╡рд░реНрдХрд╕реНрдкреЗрд╕рд╕рд╛рдареА рд╕рдорд░реНрдерди рдЬреЛрдбрд▓реЗ, рддреБрдореНрд╣рд╛рд▓рд╛ рдПрдХрд╛рдЪ рд╡реЗрд│реА рдПрдХрд╛рдзрд┐рдХ рдореЙрдбреНрдпреВрд▓реНрд╕рд╡рд░ рдХрдорд╛рдВрдб рдХрд╛рд░реНрдпрд╛рдиреНрд╡рд┐рдд рдХрд░рдгреНрдпрд╛рдЪреА рдкрд░рд╡рд╛рдирдЧреА рджреЗрддреЗ, рддреБрдореНрд╣рд╛рд▓рд╛ рдПрдХрд╛рдЪ рд╡реЗрд│реА рдПрдХрд╛рдзрд┐рдХ рдореЙрдбреНрдпреВрд▓реНрд╕рдордзреНрдпреЗ рдХреЛрдб рддрдпрд╛рд░ рдЖрдгрд┐ рдЪрд╛рд▓рд╡рдгреНрдпрд╛рдЪреА рдкрд░рд╡рд╛рдирдЧреА рджреЗрддреЗ.
  • Apple M1, ARM64 рдЖрдгрд┐ PowerPC64 рдкреНрд░реЛрд╕реЗрд╕рд░рд╡рд░ рдЖрдзрд╛рд░рд┐рдд рдкреНрд░рдгрд╛рд▓реАрдВрд╕рд╛рдареА рд▓рдХреНрд╖рдгреАрдп рдХрд╛рдордЧрд┐рд░реА рдСрдкреНрдЯрд┐рдорд╛рдпрдЭреЗрд╢рди рдХреЗрд▓реЗ рдЧреЗрд▓реЗ рдЖрд╣реЗ. рдлрдВрдХреНрд╢рдиреНрд╕рдордзреНрдпреЗ рд╡рд┐рддрд░реНрдХ рдкрд╛рд╕ рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рдЖрдгрд┐ рдирд┐рдХрд╛рд▓ рдкрд░рдд рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рд╕реНрдЯреЕрдХрдРрд╡рдЬреА рд░рдЬрд┐рд╕реНрдЯрд░реНрд╕ рд╡рд╛рдкрд░рдгреНрдпрд╛рдЪреА рдХреНрд╖рдорддрд╛ рд╕рдХреНрд╖рдо рдХреЗрд▓реА. рдХрдВрдкрд╛рдЗрд▓рд░рджреНрд╡рд╛рд░реЗ рд▓реВрдкрдЪреЗ рд╕реБрдзрд╛рд░рд┐рдд рдЗрдирд▓рд╛рдЗрди рдЕрдирд░реЛрд▓рд┐рдВрдЧ. рдХрдВрдкрд╛рдЗрд▓рд░рдордзреАрд▓ рдкреНрд░рдХрд╛рд░ рддрдкрд╛рд╕рдгреЗ рдкреВрд░реНрдгрдкрдгреЗ рдкреБрдиреНрд╣рд╛ рдбрд┐рдЭрд╛рдЗрди рдХреЗрд▓реЗ рдЧреЗрд▓реЗ рдЖрд╣реЗ. рдХрд╛рд╣реА рдЪрд╛рдЪрдгреНрдпрд╛ рдорд╛рдЧреАрд▓ рд░рд┐рд▓реАрдЭрдЪреНрдпрд╛ рддреБрд▓рдиреЗрдд рдХреЛрдб рдХрд╛рд░реНрдпрдкреНрд░рджрд░реНрд╢рдирд╛рдд 20% рд╡рд╛рдв рджрд░реНрд╢рд╡рд┐рддрд╛рдд, рдкрд░рдВрддреБ рд╕рдВрдХрд▓рд┐рдд рд╣реЛрдгреНрдпрд╛рд╕ 15% рдЬрд╛рд╕реНрдд рд╡реЗрд│ рд▓рд╛рдЧрддреЛ.
  • рд░рдирдЯрд╛рдЗрдордордзреНрдпреЗ, рдСрдкрд░реЗрдЯрд┐рдВрдЧ рд╕рд┐рд╕реНрдЯрдордордзреНрдпреЗ рдореЛрдХрд│реА рдореЗрдорд░реА рдкрд░рдд рдХрд░рдгреНрдпрд╛рдЪреА рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рд╡рд╛рдврд╡рд┐рд▓реА рдЧреЗрд▓реА рдЖрд╣реЗ рдЖрдгрд┐ рдХрдЪрд░рд╛ рдЧреЛрд│рд╛ рдХрд░рдгрд╛рд▒реНрдпрд╛рдЪреЗ рдСрдкрд░реЗрд╢рди рд╕реБрдзрд╛рд░рд▓реЗ рдЧреЗрд▓реЗ рдЖрд╣реЗ, рдЬреНрдпрд╛рдЪреЗ рд╡рд░реНрддрди рдЕрдзрд┐рдХ рдЕрдВрджрд╛рдЬреЗ рдмрдирд▓реЗ рдЖрд╣реЗ.
  • рдирд╡реАрди рдкреЕрдХреЗрдЬреЗрд╕ net/netip рдЖрдгрд┐ debug/buildinfo рдорд╛рдирдХ рд▓рд╛рдпрдмреНрд░рд░реАрдордзреНрдпреЗ рдЬреЛрдбрд▓реЗ рдЧреЗрд▓реЗ рдЖрд╣реЗрдд. TLS 1.0 рдЖрдгрд┐ 1.1 рд╕рд╛рдареА рд╕рдорд░реНрдерди рдХреНрд▓рд╛рдпрдВрдЯ рдХреЛрдбрдордзреНрдпреЗ рдбреАрдлреЙрд▓реНрдЯрдиреБрд╕рд╛рд░ рдЕрдХреНрд╖рдо рдХреЗрд▓реЗ рдЖрд╣реЗ. crypto/x509 рдореЙрдбреНрдпреВрд▓рдиреЗ SHA-1 рд╣реЕрд╢ рд╡рд╛рдкрд░реВрди рд╕реНрд╡рд╛рдХреНрд╖рд░реА рдХреЗрд▓реЗрд▓реНрдпрд╛ рдкреНрд░рдорд╛рдгрдкрддреНрд░рд╛рдВрд╡рд░ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХрд░рдгреЗ рдерд╛рдВрдмрд╡рд▓реЗ рдЖрд╣реЗ.
  • Linux рдордзреАрд▓ рдкрд░реНрдпрд╛рд╡рд░рдгрд╛рд╕рд╛рдареА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╡рд╛рдврд╡рдгреНрдпрд╛рдд рдЖрд▓реНрдпрд╛ рдЖрд╣реЗрдд; рдХрд╛рд░реНрдп рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА, рддреБрдордЪреНрдпрд╛рдХрдбреЗ рдЖрддрд╛ рдХрд┐рдорд╛рди рдЖрд╡реГрддреНрддреА 2.6.32 рдЪрд╛ Linux рдХрд░реНрдирд▓ рдЕрд╕рдгреЗ рдЖрд╡рд╢реНрдпрдХ рдЖрд╣реЗ. рдкреБрдвреАрд▓ рдкреНрд░рдХрд╛рд╢рдирд╛рдд, FreeBSD рд╕рд╛рдареА рд╕рдорд╛рди рдмрджрд▓ рдЕрдкреЗрдХреНрд╖рд┐рдд рдЖрд╣реЗрдд (FreeBSD 11.x рд╢рд╛рдЦреЗрд╕рд╛рдареА рд╕рдорд░реНрдерди рдмрдВрдж рдХреЗрд▓реЗ рдЬрд╛рдИрд▓) рдЖрдгрд┐ рдХрд┐рдорд╛рди FreeBSD 12.2 рдХрд╛рд░реНрдп рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рдЖрд╡рд╢реНрдпрдХ рдЕрд╕реЗрд▓.

рд╕реНрддреНрд░реЛрдд: opennet.ru

рдПрдХ рдЯрд┐рдкреНрдкрдгреА рдЬреЛрдбрд╛