ΡΡΠΎ ΡΠ°ΠΊΠΎΠ΅ ΠΌΠ°ΠΊΡΠΎΡ Π² ΡΠ°ΡΡΠ΅
ΠΠ°ΠΊΡΠΎΡΡ Π² ΠΈΠ³ΡΠ΅ Rust: ΡΡΠΎ ΡΡΠΎ ΡΠ°ΠΊΠΎΠ΅?
ΠΠ°ΠΊΡΠΎΡΡ ΠΈ ΡΠΈΡΡ β ΡΠ°ΠΊΠΎΠ²Π°Ρ ΠΎΠΏΡΡ ΠΎΠ»Ρ Π²ΠΎ ΠΌΠ½ΠΎΠ³ΠΈΡ ΠΈΠ³ΡΠ°Ρ . ΠΠ΅Π·ΡΡΠ»ΠΎΠ²Π½ΠΎ, Π²ΡΠ΅Π³Π΄Π° Π΅ΡΡΡ ΡΠ΅ ΠΈΠ³ΡΠΎΠΊΠΈ, ΠΊΠΎΡΠΎΡΡΠ΅ ΡΠ°Π΄Ρ ΠΏΠΎΠ»ΡΡΠΈΡΡ ΠΏΡΠ΅ΠΈΠΌΡΡΠ΅ΡΡΠ²ΠΎ Π½Π°Π΄ Π΄ΡΡΠ³ΠΈΠΌΠΈ, Π΄Π°ΠΆΠ΅ Π½Π΅ ΡΠ°ΠΌΡΠΌ ΡΠ΅ΡΡΠ½ΡΠΌ ΡΠΏΠΎΡΠΎΠ±ΠΎΠΌ. ΠΠ°Π²Π°ΠΉΡΠ΅ Π²ΡΠΏΠΎΠΌΠ½ΠΈΠΌ ΠΈΠ³ΡΡ Grand Theft Auto 5, Π° ΠΈΠΌΠ΅Π½Π½ΠΎ Π΅Ρ Online ΡΠΎΡΡΠ°Π²Π»ΡΡΡΡΡ. Π£ΠΆ Π½Π΅ Π·Π½Π°Ρ, ΠΊΠ°ΠΊ Π² Π½Π΅ΠΉ Π΄Π΅Π»Π° ΠΎΠ±ΡΡΠΎΡΡ Π½Π° Π΄Π°Π½Π½ΡΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ, Π½ΠΎ Π³ΠΎΠ΄-Π΄Π²Π° Π½Π°Π·Π°Π΄ ΡΠΈΡΠ΅ΡΡΡΠ²ΠΎ Π² Π΄Π°Π½Π½ΠΎΠΉ ΠΈΠ³ΡΠ΅ Π±ΡΠ»ΠΎ ΡΠ΅ΠΌ-ΡΠΎ ΠΎΠ±ΡΠ΄Π΅Π½Π½ΡΠΌ.
ΠΠ°, Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠ΅ΡΠ²ΡΠ΅ Π΄Π²Π°-ΡΡΠΈ Π³ΠΎΠ΄Π° ΠΏΠΎΡΠ»Π΅ ΡΠ΅Π»ΠΈΠ·Π° ΠΈΠ³ΡΡ Π½Π° ΠΠ ΠΈΠ³ΡΠΎΠΊΠΈ ΠΈ ΡΠ΄ΠΈΠ²Π»ΡΠ»ΠΈΡΡ ΡΠΈΡΠ΅ΡΠ°ΠΌ, ΠΏΡΡΠ°Π»ΠΈΡΡ ΠΈΡ ΠΊΠΈΠΊΠ½ΡΡΡ ΠΈΠ· ΡΠ΅ΡΡΠΈΠΈ, Π½ΠΎ ΡΠΆΠ΅ ΡΠ΅ΠΉΡΠ°Ρ ΠΎΡΠ΅Π½Ρ ΡΠ°ΡΡΠΎ Π·Π°Ρ ΠΎΠ΄Ρ Π½Π° ΠΈΠ³ΡΠΎΠ²ΠΎΠΉ ΡΠ΅ΡΠ²Π΅Ρ Ρ Π²ΠΈΠΆΡ Π½Π°Π΄ΠΏΠΈΡΡ ΠΏΠΎ ΡΠΈΠΏΡ Β«Π§ΠΈΡΠ΅ΡΡ Π΅ΡΡΡ? ΠΠ°ΠΊΡΡΡΠΈΡΠ΅ Π΄Π΅Π½Π΅Π³ ΠΏΠ»Π·Β».
ΠΡΠ΄Ρ ΡΠ΅ΡΡΠ΅Π½ β Ρ ΠΈ ΡΠ°ΠΌ Π³ΡΠ΅ΡΠ΅Π½. ΠΠ²Π° ΡΠ°Π·Π° Ρ Π·Π°ΠΊΠ°Π·ΡΠ²Π°Π» ΠΏΡΠΎΠΊΠ°ΡΠΊΡ ΠΈΠ³ΡΠΎΠ²ΠΎΠ³ΠΎ ΠΏΠ΅ΡΡΠΎΠ½Π°ΠΆΠ°, ΠΎΠ΄ΠΈΠ½ ΡΠ°Π· Π½Π°ΠΊΡΡΡΠΈΠ²Π°Π» ΠΈΠ³ΡΠΎΠ²ΡΡ Π²Π°Π»ΡΡΡ ΠΈ ΡΡΠΎΠ²Π΅Π½Ρ ΠΏΡΠΈ ΠΏΠΎΠΌΠΎΡΠΈ ΡΠΎΡΡΠ°. Π Π·Π½Π°Π΅ΡΠ΅ ΡΡΠΎ? GTA 5 ΠΌΠ½Π΅ ΡΠΆΠ΅ Π½Π°Π΄ΠΎΠ΅Π»Π°, Π° Π²ΠΈΠ½ΠΎΠΉ ΡΡΠΎΠΌΡ ΠΏΠΎΡΠ»ΡΠΆΠΈΠ»ΠΎ ΡΠΎ, ΡΡΠΎ Ρ ΠΌΠ΅Π½Ρ ΠΈ ΡΠ°ΠΊ ΡΠΆΠ΅ Π² Π½Π΅ΠΉ Π²ΡΡ Π΅ΡΡΡ, ΠΌΠ½Π΅ Π½ΠΈΡΠ΅Π³ΠΎ Π½Π΅ Π½Π°Π΄ΠΎ ΡΠ°ΠΌ Π΄Π΅Π»Π°ΡΡ. ΠΠ°ΡΡΠ» ΡΠ°Π· Π² Π³ΠΎΠ΄, ΠΏΠΎΡΠΌΠΎΡΡΠ΅Π» ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΡ, Π²ΡΡΠ΅Π». ΠΠΎΡ ΡΠ°ΠΊ ΡΠ΅ΠΉΡΠ°Ρ ΠΈΠ³ΡΠ°Ρ Ρ Π² ΠΠ’Π.
ΠΠΎ Π²Π΅ΡΠ½ΡΠΌΡΡ ΠΊ ΠΈΠ³ΡΠ΅ Rust. Π§Π°ΡΠ΅ Π²ΡΠ΅Π³ΠΎ Π² Π½Π°ΡΠ΅ΠΉ Π»ΡΠ±ΠΈΠΌΠΎΠΉ ΠΈΠ³ΡΠ΅ ΠΌΠΎΠΆΠ½ΠΎ Π²ΡΡΡΠ΅ΡΠΈΡΡ ΠΈΠΌΠ΅Π½Π½ΠΎ ΠΌΠ°ΠΊΡΠΎΡΠ½ΠΈΠΊΠΎΠ². Π§ΠΈΡΠ΅ΡΡ ΡΠΎΠΆΠ΅ Π²ΡΡΡΠ΅ΡΠ°ΡΡΡΡ, Π½ΠΎ Π½Π΅ ΡΠ°ΠΊ ΡΠΆ ΠΈ ΡΠ°ΡΡΠΎ, ΠΊΠ°ΠΊ ΠΏΠΎΠΊΠ°Π·ΡΠ²Π°Π΅Ρ ΠΏΡΠ°ΠΊΡΠΈΠΊΠ°. Π ΡΠ°ΠΊ ΠΊΠ°ΠΊ ΠΌΠ°ΠΊΡΠΎΡΠ½ΠΈΠΊΠΈ Π²ΡΡΡΠ΅ΡΠ°ΡΡΡΡ ΡΠ°ΡΠ΅, Π΄Π°Π²Π°ΠΉΡΠ΅ ΠΆΠ΅ ΡΠ·Π½Π°Π΅ΠΌ ΠΏΡΠΎ Π½Π°ΡΠ΅Π³ΠΎ Π²ΡΠ°Π³Π° ΠΏΠΎΠ±ΠΎΠ»ΡΡΠ΅ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ.
ΠΠ°ΠΊΡΠΎΡΡ Π² ΠΈΠ³ΡΠ΅ Rust
ΠΠ°ΠΊΡΠΎΡ β ΡΠΎΡΡ, ΠΊΠΎΡΠΎΡΡΠΉ Π²ΡΠΏΠΎΠ»Π½ΡΠ΅Ρ Π·Π° Π²Π°Ρ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ½Π½ΡΡ Π·Π°Π΄Π°ΡΡ. Π Π½Π°ΡΠ΅ΠΌ ΡΠ»ΡΡΠ°Π΅ ΠΎΠ½ Π³Π°ΡΠΈΡ ΠΎΡΠ΄Π°ΡΡ Π½Π° ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ½Π½ΠΎΠΌ ΠΎΡΡΠΆΠΈΠΈ.
Π― Π½Π΅ Π±ΡΠ΄Ρ Π²Π°ΠΌ ΡΠ°ΡΡΠΊΠ°Π·ΡΠ²Π°ΡΡ, Π³Π΄Π΅ Π½Π°ΠΉΡΠΈ ΠΌΠ°ΠΊΡΠΎΡΡ, Ρ ΠΊΠΎΠ³ΠΎ Π»ΡΡΡΠ΅ ΠΏΠΎΠΊΡΠΏΠ°ΡΡ ΠΈΡ , Π΄Π° ΠΈ ΡΡΠΎΠΈΡ Π»ΠΈ Π²ΠΎΠΎΠ±ΡΠ΅ ΠΈΡ ΠΏΠΎΠΊΡΠΏΠ°ΡΡ. ΠΠ°ΠΆΠ΅ ΠΏΡΠΈ Π²ΡΡΠΌ ΡΠ²ΠΎΡΠΌ ΠΆΠ΅Π»Π°Π½ΠΈΠΈ Ρ Π½Π΅ ΠΌΠΎΠ³Ρ, Π½Π΅ ΠΈΠΌΠ΅Ρ ΠΏΡΠ°Π²Π° ΡΠ°ΡΠΏΡΠΎΡΡΡΠ°Π½ΡΡΡ ΠΏΠΎΠ΄ΠΎΠ±Π½ΠΎΠ³ΠΎ ΡΠΎΠ΄Π° ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ. ΠΡΡΠ΅ΡΡΠ²Π΅Π½Π½ΠΎ, Π»ΡΠ΄ΠΈ ΠΊΠΎΡΠΎΡΡΠΌ Π½ΡΠΆΠ½Ρ ΠΌΠ°ΠΊΡΠΎΡΡ Π½Π°ΠΉΠ΄ΡΡ ΠΈΡ , Π½ΠΎ ΠΏΡΡΡΡ ΡΠΆ ΠΎΠ½ΠΈ Π»ΡΡΡΠ΅ ΠΏΠΎΡΡΠ°ΡΡΡ ΡΠ²ΠΎΡ Π²ΡΠ΅ΠΌΡ ΠΈ Π΄Π΅Π½ΡΠ³ΠΈ, Π½Π΅ΠΆΠ΅Π»ΠΈ ΡΡΠΎ Π±ΡΠ΄Ρ Π΄Π΅Π»Π°ΡΡ Ρ.
ΠΡΠ΅ΠΈΠΌΡΡΠ΅ΡΡΠ²Π° ΠΌΠ°ΠΊΡΠΎΡΠΎΠ² Π² Π Π°ΡΡΠ΅
Π ΡΡΠΌ ΠΆΠ΅ ΠΏΡΠ΅ΠΈΠΌΡΡΠ΅ΡΡΠ²ΠΎ Π»ΡΠ΄Π΅ΠΉ Ρ ΠΌΠ°ΠΊΡΠΎΡΠ°ΠΌΠΈ Π² Rust ΠΏΠ΅ΡΠ΅Π΄ ΠΎΠ±ΡΡΠ½ΡΠΌΠΈ ΠΈΠ³ΡΠΎΠΊΠ°ΠΌΠΈ? ΠΠ° Π²ΡΡ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ°ΡΠ½ΠΎ β ΠΏΡΠΎΡΡΠΎΠΉ ΠΈΠ³ΡΠΎΠΊ Π½Π΅ ΡΠΌΠΎΠΆΠ΅Ρ Π·Π°ΠΆΠΈΠΌΠ°ΡΡ Ρ ΠΏΡΠ»Π΅ΠΌΡΡΠ° Π½Π° 300 ΠΌΠ΅ΡΡΠΎΠ², ΠΏΠΎΠΏΠ°Π΄Π°Ρ ΠΏΡΠΈ ΡΡΠΎΠΌ Π² ΠΎΠ΄Π½Ρ ΡΠΎΡΠΊΡ. ΠΠΎΠ½Π΅ΡΠ½ΠΎ, Π΅ΡΡΡ ΠΈ ΡΠ°ΠΊΠΈΠ΅ Π»ΡΠ΄ΠΈ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΌΠ°ΡΡΠ΅ΡΠ° ΠΏΠΎ ΡΡΡΠ΅Π»ΡΠ±Π΅ Π² ΠΎΠ΄Π½Ρ ΡΠΎΡΠΊΡ, Π½ΠΎ Π½Π΅ ΠΊΠ°ΠΆΠ΄ΡΠΉ ΠΆΠ΅ ΠΈΠ³ΡΠΎΠΊ ΡΠ°ΠΊ ΡΡΡΠ΅Π»ΡΠ΅Ρ. ΠΠ°ΠΊΡΠΎΡΠ½ΠΈΠΊΠΈ ΠΆΠ΅ ΡΡΠ°Π·Ρ ΠΏΠΎΡΠ»Π΅ ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠΈ ΡΠΎΡΡΠ° ΠΌΠΎΠ³ΡΡ Ρ ΠΎΡΡ Π²ΡΡ ΠΊΠ°ΡΡΡ ΠΏΠΎΠ»ΠΈΠ²Π°ΡΡ Π³ΡΠ°Π΄ΠΎΠΌ ΠΏΡΠ»Ρ.
ΠΠ°ΠΊ Π±ΠΎΡΠΎΡΡΡΡ Ρ ΠΌΠ°ΠΊΡΠΎΡΠ½ΠΈΠΊΠ°ΠΌΠΈ
ΠΠΎΡΡΠ±Π° Ρ ΠΌΠ°ΠΊΡΠΎΡΠ½ΠΈΠΊΠ°ΠΌΠΈ β ΡΠ»ΠΎΠΆΠ½ΠΎΠ΅ Π΄Π΅Π»ΠΎ, Π΅ΡΠ»ΠΈ Π²Ρ ΠΏΡΠΎΡΡΠΎΠΉ ΠΈΠ³ΡΠΎΠΊ. ΠΠ΅ΡΠ²ΡΠΌ Π΄Π΅Π»ΠΎΠΌ ΠΏΡΠΈ Π²ΡΡΡΠ΅ΡΠ΅ ΠΌΠ°ΠΊΡΠΎΡΠ½ΠΈΠΊΠ° ΠΎΡΠΏΡΠ°Π²ΡΡΠ΅ Π½Π° Π½Π΅Π³ΠΎ ΠΆΠ°Π»ΠΎΠ±Ρ. Π£ Π½Π°Ρ ΠΏΠΎ ΡΡΠΎΠΌΡ ΠΏΠΎΠ²ΠΎΠ΄Ρ Π΅ΡΡΡ ΠΎΡΠ΄Π΅Π»ΡΠ½Π°Ρ ΡΡΠ°ΡΡΡ, Π³Π΄Π΅ ΠΌΡ ΠΎΠΏΠΈΡΠ°Π»ΠΈ, ΠΊΠ°ΠΊ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ ΡΠΈΡΡΠ΅ΠΌΠ° ΠΆΠ°Π»ΠΎΠ± Π² Rust.
ΠΡΠ»ΠΈ Π²Ρ ΠΈΠ³ΡΠ°Π΅ΡΠ΅ Π½Π° ΠΌΠΎΠ΄ΠΈΡΠΈΡΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠΌ ΡΠ΅ΡΠ²Π΅ΡΠ΅, ΡΠΎ ΡΠ°ΠΌ, ΡΠΊΠΎΡΠ΅Π΅ Π²ΡΠ΅Π³ΠΎ, Π΅ΡΡΡ ΠΌΠΎΠ΄Π΅ΡΠ°ΡΠΈΡ, ΠΊΠΎΡΠΎΡΠ°Ρ ΠΎΠ±ΡΠ·Π°ΡΠ΅Π»ΡΠ½ΠΎ ΠΎΠ±ΡΠ°Π±ΠΎΡΠ°Π΅Ρ Π²Π°ΡΡ ΠΆΠ°Π»ΠΎΠ±Ρ, Π²ΡΠ·ΠΎΠ²Π΅Ρ ΠΈΠ³ΡΠΎΠΊΠ° Π½Π° ΠΏΡΠΎΠ²Π΅ΡΠΊΡ, ΠΈ, Π΅ΡΠ»ΠΈ ΠΌΠΎΠ΄Π΅ΡΠ°ΡΠΈΠ΅ΠΉ Π±ΡΠ΄ΡΡ Π½Π°ΠΉΠ΄Π΅Π½Ρ ΠΌΠ°ΠΊΡΠΎΡΡ, ΡΠ΅Π»ΠΎΠ²Π΅ΠΊ Π±ΡΠ΄Π΅Ρ Π½Π°ΠΊΠ°Π·Π°Π½ ΠΏΠΎ Π²ΡΠ΅ΠΉ ΡΡΡΠΎΠ³ΠΎΡΡΠΈ Π·Π°ΠΊΠΎΠ½Π°, Ρ ΠΎΡΡ ΠΈ ΠΈΠ³ΡΠΎΠ²ΠΎΠ³ΠΎ. ΠΠΎΡΠΎΡΠ΅, Π·Π°Π±Π°Π½ΡΡ Π½Π΅Π³ΠΎΠ΄ΡΡ.
ΠΠΎ ΠΊΠ°ΠΊ ΠΆΠ΅ Ρ Π½ΠΈΠΌΠΈ ΠΏΠ΅ΡΠ΅ΡΡΡΠ΅Π»ΠΈΠ²Π°ΡΡΡΡ? ΠΠΈΡΠ½ΠΎ Ρ Π΄Π΅Π»Π°Ρ ΡΡΠΎ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ β Π½Π΅ ΠΌΠΎΠ³Ρ Π²Π·ΡΡΡ ΡΡΡΠ΅Π»ΡΠ±ΠΎΠΉ, ΡΡΠ³ΡΠ°Ρ ΠΎΡ ΡΠ°ΠΊΡΠΈΠΊΠΈ. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΌΠΎΠΆΠ½ΠΎ Π±ΡΡΡΡΠΎ ΠΌΠ΅Π½ΡΡΡ ΠΏΠΎΠ·ΠΈΡΠΈΡ, ΠΏΡΡΠ°ΡΡΡΡ ΠΎΠ±ΠΎΠΉΡΠΈ ΠΏΡΠΎΡΠΈΠ²Π½ΠΈΠΊΠ°, Π·Π°ΠΊΠΈΠ΄Π°ΡΡ Π΅Π³ΠΎ Π΄ΡΠΌΠ°ΠΌΠΈ ΠΈ Π³ΡΠ°Π½Π°ΡΠ°ΠΌΠΈ, Π±Π»Π°Π³ΠΎ Π΅ΡΡΡ Π³ΡΠ°Π½Π°ΡΠΎΠΌΡΡ.
ΠΡΠ»ΠΈ ΠΏΠΎΠ΄ΠΎΠ±ΡΠ°ΡΡΡΡ ΠΊ ΠΌΠ°ΠΊΡΠΎΡΠ½ΠΈΠΊΡ ΠΏΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈ Π²ΠΏΠ»ΠΎΡΠ½ΡΡ, ΡΠΎ ΡΡΡ ΡΠΆΠ΅ Π²Π°ΡΠΈ ΡΠ°Π½ΡΡ ΡΡΠ°Π²Π½ΠΈΠ²Π°ΡΡΡΡ. ΠΡΠ΄Π΅Ρ Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ Π²ΡΠΏΡΡΡΠΈΡΡ ΠΏΠ°ΡΡ ΠΏΡΠ»Ρ Π² Π³ΠΎΠ»ΠΎΠ²Ρ Π΄ΠΎ ΡΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ ΡΡΠΎ ΡΠ΄Π΅Π»Π°Π΅Ρ Π²Π°Ρ ΠΎΠΏΠΏΠΎΠ½Π΅Π½Ρ.
ΠΠ°ΠΊΡΠΎΡΡ Π² ΠΈΠ³ΡΠ΅ Rust Π·Π°ΠΏΡΠ΅ΡΠ΅Π½Ρ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ°ΠΌΠΈ
ΠΠ΅ ΡΠ°ΠΊ Π΄Π°Π²Π½ΠΎ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΈ Rust Π²Π²Π΅Π»ΠΈ ΡΡΡΠ΅ΡΡΠ²Π΅Π½Π½ΡΠ΅ ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ΠΈΡ ΠΏΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ ΠΌΡΡΠ΅ΠΊ Bloody, X7 ΠΈ ΠΏΡΠΎΡΠΈΡ ΠΌΠΎΠ΄Π΅Π»Π΅ΠΉ, Π³Π΄Π΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΡΡ ΠΌΠ°ΠΊΡΠΎΡΡ ΡΠ΅ΡΠ΅Π· Π²ΡΡΡΠΎΠ΅Π½Π½ΠΎΠ΅ ΠΠ. Π’Π°ΠΊΠΈΠ΅ Π΄Π΅Π²Π°ΠΉΡΡ Π±ΡΠ»ΠΈ Π·Π°Π±Π»ΠΎΠΊΠΈΡΠΎΠ²Π°Π½Ρ ΠΈ Π·Π°ΠΉΡΠΈ Π½Π° ΠΎΡΠΈΡΠΈΠ°Π»ΡΠ½ΡΠ΅ ΡΠ΅ΡΠ²Π΅ΡΡ, Π° ΡΠ°ΠΊΠΆΠ΅ Π±ΠΎΠ»ΡΡΠΈΠ½ΡΡΠ²ΠΎ ΠΌΠΎΠ΄ΠΈΡΠΈΡΠΈΡΠΎΠ²Π°Π½Π½ΡΡ ΠΏΡΠΎΠ΅ΠΊΡΠΎΠ² Π½Π΅Π»ΡΠ·Ρ! ΠΡΠΎ ΡΠ΄Π΅Π»Π°Π½ΠΎ Ρ ΡΠ΅Π»ΡΡ Π·Π°ΡΠΈΡΡ ΠΈΠ³ΡΠΎΠΊΠΎΠ² ΠΎΡ ΠΌΠ°ΠΊΡΠΎΡΠ½ΠΈΠΊΠΎΠ². ΠΠ·-Π·Π° ΡΡΠΎΠ³ΠΎ ΠΏΠΎΡΠ²ΠΈΠ»ΡΡ Π²ΠΎΠΏΡΠΎΡ β ΠΊΠ°ΠΊ ΠΈΠ³ΡΠ°ΡΡ Ρ ΠΌΡΡΠΊΠΎΠΉ Π±Π»Π°Π΄ΠΈ Π² ΡΠ°ΡΡ? ΠΡΡΡ ΠΎΠ±Ρ ΠΎΠ΄Π½ΡΠ΅ Π»Π΅Π³Π°Π»ΡΠ½ΡΠ΅ ΠΏΡΡΠΈ, ΠΊΠΎΡΠΎΡΡΠ΅ Π²ΡΠΈΠ³ΡΡΡΠ½Ρ Π΄Π»Ρ Π²ΡΠ΅Ρ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Π΅ΠΉ: ΠΈ ΡΠ΅Ρ , ΠΊΡΠΎ ΠΎΠ±Π»Π°Π΄Π°Π΅Ρ ΡΠ°ΠΊΠΎΠΉ ΠΌΡΡΠΊΠΎΠΉ, Π½ΠΎ ΠΌΠ°ΠΊΡΠΎΡΡ Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅Ρ, ΠΈ Π΄Π»Ρ Π²Π»Π°Π΄Π΅Π»ΡΡΠ΅Π² ΡΠ΅ΡΠ²Π΅ΡΠΎΠ² (Π·Π°Ρ ΠΎΠ΄ΠΈΡΡ ΠΌΠΎΠ³ΡΡ Π²ΡΠ΅ Π½Π° ΡΠ΅ΡΠ²Π΅Ρ). Π£ Π½Π°Ρ Π΅ΡΡΡ ΠΎΡΠ΄Π΅Π»ΡΠ½Π°Ρ ΡΡΠ°ΡΡΡ, Π³Π΄Π΅ ΠΌΡ ΠΎΠΏΠΈΡΠ°Π»ΠΈ, ΠΊΠ°ΠΊ ΠΈΠ³ΡΠ°ΡΡ Π² rust Ρ ΠΌΡΡΠΊΠΎΠΉ bloody. Π’Π°ΠΌ ΠΌΡ ΡΠ°ΡΡΠΊΠ°Π·Π°Π»ΠΈ ΠΏΡΠΎ ΠΎΠ±Ρ ΠΎΠ΄ Π±Π»ΠΎΠΊΠΈΡΠΎΠ²ΠΊΠΈ ΠΌΡΡΠΊΠΈ bloody rust, Π° ΡΠ°ΠΊΠΆΠ΅ ΡΠΊΠ°Π·Π°Π»ΠΈ ΠΎ Π±Π»ΠΎΠΊΠΈΡΠΎΠ²ΠΊΠ΅ Π±Π»Π°Π΄ΠΈ Π² ΡΠ°ΡΡ.
Rust: Π·Π°ΡΠ΅ΠΌ Π½ΡΠΆΠ½Ρ ΠΌΠ°ΠΊΡΠΎΡΡ
ΠΠ°ΠΊ-ΡΠΎ Ρ ΡΠΊΠ°Π·Π°Π» ΡΠ²ΠΎΠ΅ΠΌΡ ΠΊΠΎΠ»Π»Π΅Π³Π΅, ΡΡΠΎ Π² Rust ΠΈΠΌΠ΅ΡΡΡΡ ΠΌΠ°ΠΊΡΠΎΡΡ, Π΅ΠΌΡ ΠΏΠΎΠΊΠ°Π·Π°Π»ΠΎΡΡ, ΡΡΠΎ ΡΡΠΎ ΠΏΠ»ΠΎΡ ΠΎ. Π Π°Π½ΡΡΠ΅ Ρ ΠΌΠ΅Π½Ρ Π±ΡΠ»Π° ΡΠ°ΠΊΠ°Ρ ΠΆΠ΅ ΡΠ΅Π°ΠΊΡΠΈΡ, Π½ΠΎ Rust ΠΏΠΎΠΊΠ°Π·Π°Π» ΠΌΠ½Π΅, ΡΡΠΎ ΠΌΠ°ΠΊΡΠΎΡΡ Π½Π΅ ΠΎΠ±ΡΠ·Π°ΡΠ΅Π»ΡΠ½ΠΎ ΠΏΠ»ΠΎΡ ΠΈ.
ΠΠ΄Π΅ ΠΈ ΠΊΠ°ΠΊ ΠΈΡ ΡΠΌΠ΅ΡΡΠ½ΠΎ ΠΏΡΠΈΠΌΠ΅Π½ΡΡΡ? Π‘ΠΌΠΎΡΡΠΈΡΠ΅ ΠΏΠΎΠ΄ ΠΊΠ°ΡΠΎΠΌ.
ΠΠΎΡΠ΅ΠΌΡ ΠΌΡ Π΄ΠΎΠ»ΠΆΠ½Ρ ΠΎΠΏΠ°ΡΠ°ΡΡΡΡ ΠΌΠ°ΠΊΡΠΎΡΠΎΠ²
ΠΠ°ΠΊΡΠΎΡΡ ΡΠ²Π»ΡΡΡΡΡ ΡΠΎΡΠΌΠΎΠΉ ΠΌΠ΅ΡΠ°ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ: ΠΎΠ½ΠΈ ΡΠ²Π»ΡΡΡΡΡ ΠΊΠΎΠ΄ΠΎΠΌ, ΠΊΠΎΡΠΎΡΡΠΉ ΠΌΠ°Π½ΠΈΠΏΡΠ»ΠΈΡΡΠ΅Ρ ΠΊΠΎΠ΄ΠΎΠΌ. ΠΠ΅ΡΠ°ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΠΏΠΎΠ»ΡΡΠΈΠ»ΠΎ ΠΏΠ»ΠΎΡ ΡΡ ΡΠ΅ΠΏΡΡΠ°ΡΠΈΡ, ΠΏΠΎΡΠΎΠΌΡ ΡΡΠΎ ΠΏΡΠΈ ΠΈΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠΈ Π½Π΅Π»Π΅Π³ΠΊΠΎ ΡΠ±Π΅ΡΠ΅ΡΡΡΡ ΠΎΡ Π½Π°ΠΏΠΈΡΠ°Π½ΠΈΡ ΠΏΠ»ΠΎΡ ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π°. ΠΡΠΈΠΌΠ΅ΡΠ°ΠΌΠΈ ΡΠ»ΡΠΆΠ°Ρ #define Π² C, ΠΊΠΎΡΠΎΡΡΠΉ Π»Π΅Π³ΠΊΠΎ ΠΌΠΎΠΆΠ΅Ρ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΎΠ²Π°ΡΡ Ρ ΠΊΠΎΠ΄ΠΎΠΌ Π½Π΅ΠΏΡΠ΅Π΄ΡΠΊΠ°Π·ΡΠ΅ΠΌΡΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ, ΠΈΠ»ΠΈ eval Π² JavaScript, ΠΊΠΎΡΠΎΡΡΠΉ ΡΠ²Π΅Π»ΠΈΡΠΈΠ²Π°ΡΡ ΠΎΠΏΠ°ΡΠ½ΠΎΡΡΡ ΠΈΠ½ΡΠ΅ΠΊΡΠΈΠΈ ΠΊΠΎΠ΄Π°.
Π ΠΌΠ°ΠΊΡΠΎΡΠ°Ρ Π² Rust
ΠΠ½ΠΎΠ³ΠΈΠ΅ ΠΈΡ ΡΡΠΈΡ ΠΏΡΠΎΠ±Π»Π΅ΠΌ ΠΌΠΎΠ³ΡΡ Π±ΡΡΡ ΡΠ΅ΡΠ΅Π½Ρ ΠΏΡΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠΈ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΡΡ ΡΡΠ΅Π΄ΡΡΠ², ΠΌΠ°ΠΊΡΠΎΡΡ ΠΆΠ΅ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΡΡ Π½Π΅ΠΊΠΎΡΠΎΡΡΠ΅ ΡΠ°ΠΊΠΈΠ΅ ΡΡΠ΅Π΄ΡΡΠ²Π°:
ΠΡΠΈΡΠΈΠ½ΠΎΠΉ ΡΠΎΠ³ΠΎ, ΡΡΠΎ ΠΈΠΌΠ΅Π΅ΡΡΡ Π΄Π²Π° ΡΠΈΠΏΠ° ΠΌΠ°ΠΊΡΠΎΡΠΎΠ² ΡΠ²Π»ΡΠ΅ΡΡΡ ΡΠΎ, ΡΡΠΎ ΠΎΠ½ΠΈ Ρ ΠΎΡΠΎΡΠΎ ΠΏΠΎΠ΄Ρ ΠΎΠ΄ΡΡ Π΄Π»Ρ ΡΠ΅ΡΠ΅Π½ΠΈΡ ΡΠ°Π·Π½ΡΡ Π·Π°Π΄Π°Ρ:
ΠΠΎΡΠ΅ΠΌΡ ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½ΡΠ΅ ΠΌΠ°ΠΊΡΠΎΡΡ
ΠΠ°ΡΠ΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΌΠ°ΠΊΡΠΎΡΡ, ΠΊΠΎΠ³Π΄Π° ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΡΠ½ΠΊΡΠΈΠΈ? ΠΡΠΆΠ½ΠΎ ΠΏΠΎΠΌΠ½ΠΈΡΡ, ΡΡΠΎ ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½ΡΠ΅ ΠΌΠ°ΠΊΡΠΎΡΡ Π½ΠΈΡΠ΅Π³ΠΎ Π½Π΅ ΠΈΠΌΠ΅ΡΡ ΠΎΠ±ΡΠ΅Π³ΠΎ Ρ ΡΡΠ½ΠΊΡΠΈΡΠΌΠΈ β ΠΎΠ½ΠΈ ΠΏΠΎΡ ΠΎΠΆΠΈ Π½Π° ΡΡΠ½ΠΊΡΠΈΠΈ, ΡΡΠΎΠ±Ρ ΠΈΡ , ΠΌΠ°ΠΊΡΠΎΡΡ, Π±ΡΠ»ΠΎ Π»Π΅Π³ΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ. ΠΠΎΡΡΠΎΠΌΡ Π²ΠΎΠΏΡΠΎΡ ΡΡΠΎΠΈΡ Π½Π΅ Π² ΡΠΎΠΌ, Π»ΡΡΡΠ΅ Π΄Π°Π½Π½ΡΠΉ ΡΠΈΠΏ ΠΌΠ°ΠΊΡΠΎΡΠΎΠ² ΡΠ΅ΠΌ ΡΡΠ½ΠΊΡΠΈΠΈ ΠΈΠ»ΠΈ Π½Π΅Ρ, Π° Π² ΡΠΎΠΌ, Π½ΡΠΆΠ½Π° Π»ΠΈ Π½Π°ΠΌ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΠΌΠ΅Π½ΡΡΡ ΠΈΡΡ ΠΎΠ΄Π½ΡΠΉ ΠΊΠΎΠ΄.
ΠΠΎΠ»Π΅Π·Π½ΡΠ΅ ΡΡΠ²Π΅ΡΠΆΠ΄Π΅Π½ΠΈΡ
ΠΠ°Π½Π½ΠΎΠ΅ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ Π² ΡΠ΅Π±Π΅ ΡΡΠ»ΠΎΠ²ΠΈΠ΅, ΠΊΠΎΡΠΎΡΠΎΠ΅ ΠΌΡ ΠΏΡΠΎΠ²Π΅ΡΡΠ΅ΠΌ. ΠΡΡΠ³ΠΈΠΌΠΈ ΡΠ»ΠΎΠ²Π°ΠΌΠΈ, ΠΌΠ°ΠΊΡΠΎΡ ΡΠΎΠ·Π΄Π°Π΅Ρ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ ΠΎΠ± ΠΎΡΠΈΠ±ΠΊΠ΅, ΠΊΠΎΡΠΎΡΠΎΠ΅ ΠΎΡΠ½ΠΎΠ²Π°Π½ΠΎ Π½Π° ΠΈΡΡ ΠΎΠ΄Π½ΠΎΠΌ ΠΊΠΎΠ΄Π΅, ΠΌΡ ΠΆΠ΅ ΠΏΠΎΠ»ΡΡΠ°Π΅ΠΌ ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΠ΅Π»ΡΠ½ΠΎΠ΅ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ ΠΎΠ± ΠΎΡΠΈΠ±ΠΊΠ΅, Π½Π΅ Π²ΡΡΠ°Π²Π»ΡΡ Π΅Π³ΠΎ Π² ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ Π²ΡΡΡΠ½ΡΡ.
Π’ΠΈΠΏΠΎ-Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½Π°Ρ ΡΠ°Π±ΠΎΡΠ° Ρ ΡΠΎΡΠΌΠ°ΡΠΎΠΌ ΡΡΡΠΎΠΊ
ΠΠ΅Π³ΠΊΠΎΠ΅ Π»ΠΎΠ³ΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅
Π ΡΡΠΎΠΌ ΠΏΡΠΈΠΌΠ΅ΡΠ΅ Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ Π²Π΄Π°Π΄ΠΈΠΌΡΡ Π² ΡΠΊΠΎΡΠΈΡΡΠ΅ΠΌΡ ΡΠ·ΡΠΊΠ°. Rust ΠΈΠΌΠ΅Π΅Ρ ΠΏΠ°ΠΊΠ΅Ρ log, ΠΊΠΎΡΠΎΡΡΠΉ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ ΠΊΠ°ΠΊ Π³Π»Π°Π²Π½ΡΠΉ ΡΡΠΎΠ½ΡΠ΅Π½Π΄ Π»ΠΎΠ³ΠΈΡΠΎΠ²Π°Π½ΠΈΡ. ΠΠ°ΠΊ ΠΈ Π΄ΡΡΠ³ΠΈΠ΅ ΡΠ΅ΡΠ΅Π½ΠΈΡ Π΄Π»Ρ Π»ΠΎΠ³ΠΈΡΠΎΠ²Π°Π½ΠΈΡ, ΠΎΠ½ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΠ΅Ρ ΡΠ°Π·Π½ΡΠ΅ ΡΡΠΎΠ²Π½ΠΈ Π»ΠΎΠ³ΠΈΡΠΎΠ²Π°Π½ΠΈΡ, Π½ΠΎ, Π² ΠΎΡΠ»ΠΈΡΠΈΠ΅ ΠΎΡ Π΄ΡΡΠ³ΠΈΡ ΡΠ΅ΡΠ΅Π½ΠΈΠΉ, Π΄Π°Π½Π½ΡΠ΅ ΡΡΠΎΠ²Π½ΠΈ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΡΡΡΡ ΠΌΠ°ΠΊΡΠΎΡΠ°ΠΌΠΈ, Π° Π½Π΅ ΡΡΠ½ΠΊΡΠΈΡΠΌΠΈ.
ΠΠΎΠ³ΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΠΏΠΎΠΊΠ°Π·ΡΠ²Π°Π΅Ρ ΠΌΠΎΡΠ½ΠΎΡΡΡ ΠΌΠ΅ΡΠ°ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ Π² ΡΠΎΠΌ, ΠΊΠ°ΠΊ ΠΎΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅Ρ ΠΌΠ°ΠΊΡΠΎΡΡ file! ΠΈ line! ; ΠΠ°Π½Π½ΡΠ΅ ΠΌΠ°ΠΊΡΠΎΡΡ Π΄Π°ΡΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ ΡΠΎΡΠ½ΠΎΠ΅ ΠΌΠ΅ΡΡΠΎ ΡΠ°ΡΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Π²ΡΠ·ΠΎΠ²Π° ΡΡΠ½ΠΊΡΠΈΠΈ Π»ΠΎΠ³ΠΈΡΠΎΠ²Π°Π½ΠΈΡ Π² ΠΈΡΡ ΠΎΠ΄Π½ΠΎΠΌ ΠΊΠΎΠ΄Π΅. ΠΠ°Π²Π°ΠΉΡΠ΅ ΠΏΠΎΡΠΌΠΎΡΡΠΈΠΌ Π½Π° ΠΏΡΠΈΠΌΠ΅Ρ. Π’Π°ΠΊ ΠΊΠ°ΠΊ log ΡΠ²Π»ΡΠ΅ΡΡΡ ΡΡΠΎΠ½ΡΠ΅Π½Π΄ΠΎΠΌ, Π΄ΠΎΠ±Π°Π²ΠΈΠΌ Π±ΡΠΊΠ΅Π½Π΄, ΠΏΠ°ΠΊΠ΅Ρ flexi_logger.
ΠΡΠ° ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ° Π½Π°ΠΏΠ΅ΡΠ°ΡΠ°Π΅Ρ:
ΠΠ°ΠΊ Π²Ρ Π²ΠΈΠ΄ΠΈΡΠ΅, Π½Π°ΡΠΈ Π»ΠΎΠ³ΠΈ ΡΠΎΠ΄Π΅ΡΠΆΠ°Ρ ΠΈΠΌΠ΅Π½Π° ΡΠ°ΠΉΠ»ΠΎΠ² ΠΈ Π½ΠΎΠΌΠ΅ΡΠ° ΡΡΡΠΎΠΊ.
Π ΠΏΠ΅ΡΠ²ΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡ Π²ΡΡΠ°Π²Π»ΡΠ΅Ρ Π² ΠΈΡΠΏΠΎΠ»Π½ΡΠ΅ΠΌΡΠ΅ ΡΠ°ΠΉΠ»Ρ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΡΡ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ, ΠΊΠΎΡΠΎΡΡΡ ΠΌΡ ΠΌΠΎΠΆΠ΅ΠΌ ΠΏΡΠΈ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎΡΡΠΈ Π½Π°ΠΏΠ΅ΡΠ°ΡΠ°ΡΡ. ΠΡΠ»ΠΈ Π±Ρ ΠΌΡ Π½Π΅ ΡΠ΅ΡΠ°Π»ΠΈ Π΄Π°Π½Π½ΡΡ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ Π²ΠΎ Π²ΡΠ΅ΠΌΡ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΈΠΈ, ΡΠΎ Π½Π°ΠΌ ΠΏΡΠΈΡΠ»ΠΎΡΡ ΠΌΡ ΠΈΡΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΡ ΡΡΠ΅ΠΊ Π²ΠΎ Π²ΡΠ΅ΠΌΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ, ΡΡΠΎ ΡΡΠ΅Π²Π°ΡΠΎ ΠΎΡΠΈΠ±ΠΊΠ°ΠΌΠΈ ΠΈ ΡΠ½ΠΈΠΆΠ°Π΅Ρ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΡ.
ΠΡΠ»ΠΈ ΠΌΡ Π·Π°ΠΌΠ΅Π½ΠΈΠΌ Π»ΠΎΠ³ΠΈΡΡΡΡΠΈΠ΅ ΠΌΠ°ΠΊΡΠΎΡΡ Π½Π° ΡΡΠ½ΠΊΡΠΈΠΈ, ΡΠΎ ΠΏΠΎ-ΠΏΡΠ΅ΠΆΠ½Π΅ΠΌΡ ΠΌΠΎΠΆΠ΅ΠΌ Π²ΡΠ·ΡΠ²Π°ΡΡ file! ΠΈ line! :
Π Π΄Π°Π½Π½ΡΠΉ ΠΊΠΎΠ΄ Π²ΡΠ²Π΅Π» Π±Ρ ΡΠ»Π΅Π΄ΡΡΡΠ΅Π΅:
ΠΠΎΡΠ΅ΠΌΡ Π°ΡΡΠΈΠ±ΡΡΠ½ΡΠ΅ ΠΌΠ°ΠΊΡΠΎΡΡ
Rust Π²ΠΊΠ»ΡΡΠ°Π΅Ρ Π² ΡΠ΅Π±Ρ ΠΊΠΎΠ½ΡΠ΅ΠΏΡ Π°ΡΡΠΈΠ±ΡΡΠΎΠ², ΠΊΠΎΡΠΎΡΡΠΉ Π½ΡΠΆΠ΅Π½ Π΄Π»Ρ ΠΏΠΎΠΌΠ΅ΡΠΊΠΈ ΠΊΠΎΠ΄Π°. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, ΡΡΠ½ΠΊΡΠΈΡ ΡΠ΅ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ Π²ΡΠ³Π»ΡΠ΄ΠΈΡ ΡΠ°ΠΊ:
ΠΠ°ΠΏΡΡΠΊ cargo test Π·Π°ΠΏΡΡΡΠΈΡ Π΄Π°Π½Π½ΡΡ ΡΡΠ½ΠΊΡΠΈΡ. ΠΡΡΠΈΠ±ΡΡΠΈΠ²Π½ΡΠ΅ ΠΌΠ°ΠΊΡΠΎΡΡ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡΡ Π²Π°ΠΌ ΡΠΎΠ·Π΄Π°Π²Π°ΡΡ Π½ΠΎΠ²ΡΠ΅ Π°ΡΡΠΈΠ±ΡΡΡ, ΠΊΠΎΡΠΎΡΡΠΉ ΠΏΠΎΠ΄ΠΎΠ±Π½Ρ «ΡΠΎΠ΄Π½ΡΠΌ» Π°ΡΡΠΈΠ±ΡΡΠ°ΠΌ, Π½ΠΎ ΠΈΠΌΠ΅ΡΡ Π΄ΡΡΠ³ΠΈΠ΅ ΡΡΡΠ΅ΠΊΡΡ. ΠΠ° ΡΠ΅ΠΊΡΡΠΈΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ ΡΡΡΠ΅ΡΡΠ²ΡΠ΅Ρ Π²Π°ΠΆΠ½ΠΎΠ΅ ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ΠΈΠ΅: Π² ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡΠ΅ ΠΈΠ· Π²Π΅ΡΠΊΠΈ stable ΡΠ°Π±ΠΎΡΠ°ΡΡ ΡΠΎΠ»ΡΠΊΠΎ ΠΌΠ°ΠΊΡΠΎΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΠΈΠ΅ Π°ΡΡΠΈΠ±ΡΡ derive, Π² ΡΠΎ Π²ΡΠ΅ΠΌΡ ΠΊΠ°ΠΊ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΈΠ΅ Π°ΡΡΠΈΠ±ΡΡΡ ΡΠ°Π±ΠΎΡΠ°ΡΡ Π² Π½ΠΎΡΠ½ΡΡ ΡΠ±ΠΎΡΠΊΠ°Ρ . Π Π°ΡΡΠΌΠΎΡΡΠΈΠΌ ΡΠ°Π·Π½ΠΈΡΡ Π½ΠΈΠΆΠ΅.
Π Π°ΡΡΠΌΠ°ΡΡΠΈΠ²Π°Ρ ΠΏΡΠ΅ΠΈΠΌΡΡΠ΅ΡΡΠ²Π°, Π΄Π°Π²Π°Π΅ΠΌΡΠ΅ Π°ΡΡΠΈΠ±ΡΡΠΈΠ²Π½ΡΠΌΠΈ ΠΌΠ°ΠΊΡΠΎΡΠ°ΠΌΠΈ, ΡΠ΅Π»Π΅ΡΠΎΠΎΠ±ΡΠ°Π·Π½ΠΎ ΡΡΠ°Π²Π½ΠΈΡΡ ΠΊΠΎΠ΄, ΠΊΠΎΡΠΎΡΡΠΉ ΠΌΠΎΠΆΠ΅Ρ ΠΌΠ°Π½ΠΈΠΏΡΠ»ΠΈΡΠΎΠ²Π°ΡΡ ΠΈΡΡ ΠΎΠ΄Π½ΡΠΌ ΠΊΠΎΠ΄ΠΎΠΌ, Ρ ΡΠ΅ΠΌ, ΠΊΠΎΡΠΎΡΡΠΉ Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ ΡΡΠΎ Π΄Π΅Π»Π°ΡΡ.
ΠΠΎΠ»ΡΡΠ΅Π½ΠΈΠ΅ ΠΈΠ·Π±ΡΡΠΎΡΠ½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π° (boilerplate)
Derive Ρ ΠΏΡΠ΅ΠΈΠΌΡΡΠ΅ΡΡΠ²Π°ΠΌΠΈ
derive ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΎΠ΄Π½ΠΎΠΉ ΠΈΠ· ΠΌΠ½ΠΎΠ³ΠΈΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠ΅ΠΉ Π³Π΅Π½Π΅ΡΠ°ΡΠΈΠΈ ΠΊΠΎΠ΄Π° Π°ΡΡΠΈΠ±ΡΡΠΈΠ²Π½ΡΠΌΠΈ ΠΌΠ°ΠΊΡΠΎΡΠ°ΠΌΠΈ, Π° Π½Π΅ ΡΠΎΠ»ΡΠΊΠΎ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ ΡΠΈΠΏΠ°ΠΆΠ΅ΠΉ. ΠΠ° Π΄Π°Π½Π½ΡΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ ΡΡΠΎ Π΄ΠΎΡΡΡΠΏΠ½ΠΎ Π² Π½ΠΎΡΠ½ΡΡ ΡΠ±ΠΎΡΠΊΠ°Ρ , ΡΡΠΎ, Π½Π°Π΄Π΅ΡΡΡ, Π±ΡΠ΄Π΅Ρ ΡΡΠ°Π±ΠΈΠ»ΠΈΠ·ΠΈΡΠΎΠ²Π°Π½ΠΎ Π² ΡΠ΅ΠΊΡΡΠ΅ΠΌ Π³ΠΎΠ΄Ρ.
ΠΠ°ΠΈΠ±ΠΎΠ»Π΅Π΅ Π²ΡΠ΄Π°ΡΡΠΈΠΌΡΡ ΡΠ»ΡΡΠ°Π΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ Π½Π° ΡΠ΅ΠΊΡΡΠΈΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ ΡΠ²Π»ΡΠ΅ΡΡΡ Rocket β Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ° Π΄Π»Ρ Π½Π°ΠΏΠΈΡΠ°Π½ΠΈΡ Π²Π΅Π±-ΡΠ΅ΡΠ²Π΅ΡΠΎΠ². Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ REST-endpoint’ΠΎΠ² ΡΡΠ΅Π±ΡΠ΅Ρ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΡ Π°ΡΡΠΈΠ±ΡΡΠ° ΠΊ ΡΡΠ½ΠΊΡΠΈΠΈ, ΡΠ°ΠΊ ΡΡΠΎ ΡΠ΅ΠΏΠ΅ΡΡ ΡΡΠ½ΠΊΡΠΈΡ ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ Π²ΡΡ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΡΡ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ Π΄Π»Ρ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠΈ Π·Π°ΠΏΡΠΎΡΠ°.
ΠΠ΅Π΄ΠΎΡΡΠ°ΡΠΊΠΈ
ΠΠ°ΠΊΡΠΎΡΡ Π½Π΅ ΠΈΠ΄Π΅Π°Π»ΡΠ½Ρ, ΡΠ°ΡΡΠΌΠΎΡΡΠΈΠΌ ΠΈΡ Π½Π΅ΠΊΠΎΡΠΎΡΡΠ΅ Π½Π΅Π΄ΠΎΡΡΠ°ΡΠΊΠΈ:
ΠΡΠ²ΠΎΠ΄Ρ
ΠΠ°ΠΊΡΠΎΡΡ ΡΠ²Π»ΡΡΡΡΡ ΠΌΠΎΡΠ½ΡΠΌ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠΎΠΌ, ΠΊΠΎΡΠΎΡΡΠΉ ΠΌΠΎΠΆΠ΅Ρ ΠΏΠΎΠΌΠΎΡΡ Π² ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠ΅. ΠΠ°Π΄Π΅ΡΡΡ, ΡΠΌΠΎΠ³ Π²Π½ΡΡΠΈΡΡ Π²Π°ΠΌ ΠΌΡΡΠ»Ρ, ΡΡΠΎ ΠΌΠ°ΠΊΡΠΎΡΡ Π² Rust ΡΠ²Π»ΡΡΡΡΡ ΠΏΠΎΠ»ΠΎΠΆΠΈΡΠ΅Π»ΡΠ½ΡΠΌ ΡΠ²Π»Π΅Π½ΠΈΠ΅ΠΌ ΠΈ ΠΈΠΌΠ΅ΡΡ ΡΠ»ΡΡΠ°ΠΈ, ΠΊΠΎΠ³Π΄Π° ΠΈΡ ΠΏΡΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ ΡΠΌΠ΅ΡΡΠ½ΠΎ.
Π§Π΅ΡΠ½Π°Ρ ΠΌΠ°Π³ΠΈΡ ΠΌΠ΅ΡΠ°ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ: ΠΊΠ°ΠΊ ΡΠ°Π±ΠΎΡΠ°ΡΡ ΠΌΠ°ΠΊΡΠΎΡΡ Π² Rust 1.15
Π ΠΏΡΠΎΡΠ»ΠΎΠΉ ΡΡΠ°ΡΡΠ΅ ΠΌΡ ΠΏΠΎΠ·Π½Π°ΠΊΠΎΠΌΠΈΠ»ΠΈΡΡ Ρ ΠΎΠ΄Π½ΠΎΠΉ ΠΈΠ· ΡΠ°ΠΌΡΡ
ΠΈΠ½ΡΠ΅ΡΠ΅ΡΠ½ΡΡ
Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠ΅ΠΉ ΡΠ·ΡΠΊΠ° Rust β ΠΏΡΠΎΡΠ΅Π΄ΡΡΠ½ΡΠΌΠΈ ΠΌΠ°ΠΊΡΠΎΡΠ°ΠΌΠΈ.
ΠΠ°ΠΊ ΠΈ ΠΎΠ±Π΅ΡΠ°Π», ΡΠ΅Π³ΠΎΠ΄Π½Ρ Ρ ΡΠ°ΡΡΠΊΠ°ΠΆΡ ΠΎ ΡΠΎΠΌ, ΠΊΠ°ΠΊ ΠΏΠΈΡΠ°ΡΡ ΡΠ°ΠΊΠΈΠ΅ ΠΌΠ°ΠΊΡΠΎΡΡ ΡΠ°ΠΌΠΎΡΡΠΎΡΡΠ΅Π»ΡΠ½ΠΎ ΠΈ Π² ΡΠ΅ΠΌ ΠΈΡ ΠΏΡΠΈΠ½ΡΠΈΠΏΠΈΠ°Π»ΡΠ½ΠΎΠ΅ ΠΎΡΠ»ΠΈΡΠΈΠ΅ ΠΎΡ ΠΏΠ΅ΡΠ°Π»ΡΠ½ΠΎ ΠΈΠ·Π²Π΅ΡΡΠ½ΡΡ ΠΌΠ°ΠΊΡΠΎΡΠΎΠ² ΠΏΡΠ΅ΠΏΡΠΎΡΠ΅ΡΡΠΎΡΠ° Π² C/C++.
ΠΠΎ ΡΠ½Π°ΡΠ°Π»Π° ΠΏΡΠΎΠΉΠ΄Π΅ΠΌΡΡ ΠΏΠΎ ΡΠ΅Π»ΠΈΠ·Ρ 1.15 ΠΈ ΠΏΠΎΠ³ΠΎΠ²ΠΎΡΠΈΠΌ ΠΎ Π΄ΡΡΠ³ΠΈΡ Π½ΠΎΠ²ΡΠ΅ΡΡΠ²Π°Ρ , ΠΏΠΎΡΠΊΠΎΠ»ΡΠΊΡ Π΄Π»Ρ ΠΌΠ½ΠΎΠ³ΠΈΡ ΠΎΠ½ΠΈ ΠΎΠΊΠ°Π·Π°Π»ΠΈΡΡ Π½Π΅ ΠΌΠ΅Π½Π΅Π΅ Π²ΠΎΡΡΡΠ΅Π±ΠΎΠ²Π°Π½Ρ.
Π§ΡΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΡΠΈΡΠ°ΡΡ?
Π―Π·ΡΠΊ Rust ΡΠ°Π·Π²ΠΈΠ²Π°Π΅ΡΡΡ ΠΎΡΠ΅Π½Ρ ΠΈΠ½ΡΠ΅Π½ΡΠΈΠ²Π½ΠΎ. ΠΠ·Π΄Π°ΡΠ΅Π»ΠΈ, Π½Π°ΡΡΡΠ°Π»ΡΠ½ΠΎ, Π½Π΅ ΡΡΠΏΠ΅Π²Π°ΡΡ ΠΈ Π½Π΅ Π±Π΅ΡΡΡΡΡ Π²ΡΠΏΡΡΠΊΠ°ΡΡ ΠΊΠ½ΠΈΠ³ΠΈ, ΠΏΠΎΡΠΊΠΎΠ»ΡΠΊΡ ΠΎΠ½ΠΈ ΡΡΡΠ°ΡΠ΅Π²Π°ΡΡ Π΅ΡΠ΅ Π΄ΠΎ ΡΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ Π½Π° ΡΡΡΠ°Π½ΠΈΡΠ°Ρ Π²ΡΡΠΎΡ Π½Π΅Ρ ΠΊΡΠ°ΡΠΊΠ°.
ΠΠΎΡΡΠΎΠΌΡ Π±ΠΎΠ»ΡΡΠ°Ρ ΡΠ°ΡΡΡ Π°ΠΊΡΡΠ°Π»ΡΠ½ΠΎΠΉ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΠΈ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½Π° Π² ΡΠ»Π΅ΠΊΡΡΠΎΠ½Π½ΠΎΠΌ Π²ΠΈΠ΄Π΅. Π’ΡΠ°Π΄ΠΈΡΠΈΠΎΠ½Π½ΡΠΌ ΠΈΡΡΠΎΡΠ½ΠΈΠΊΠΎΠΌ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΠ½ΠΈΠ³Π°, Π² ΠΊΠΎΡΠΎΡΠΎΠΉ ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΉΡΠΈ Π±ΠΎΠ»ΡΡΠΈΠ½ΡΡΠ²ΠΎ ΠΎΡΠ²Π΅ΡΠΎΠ² Π½Π° Π²ΠΎΠΏΡΠΎΡΡ Π½ΠΎΠ²ΠΈΡΠΊΠΎΠ². ΠΠ»Ρ ΡΠΎΠ²ΡΠ΅ΠΌ ΡΠ°ΡΡΡΡ Π²ΠΎΠΏΡΠΎΡΠΎΠ² ΠΏΡΠ΅Π΄ΡΡΠΌΠΎΡΡΠ΅Π½ ΡΠ°Π·Π΄Π΅Π» FAQ.
Π’Π΅ΠΌ, ΠΊΡΠΎ ΡΠΆΠ΅ ΠΈΠΌΠ΅Π΅Ρ ΠΎΠΏΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ Π½Π° Π΄ΡΡΠ³ΠΈΡ ΡΠ·ΡΠΊΠ°Ρ , ΠΈ Π²ΠΎΠΎΠ±ΡΠ΅ Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ Π²Π·ΡΠΎΡΠ»ΡΠΉ, ΡΡΠΎΠ±Ρ ΡΠ°Π·Π±ΠΈΡΠ°ΡΡΡΡ ΡΠ°ΠΌΠΎΡΡΠΎΡΡΠ΅Π»ΡΠ½ΠΎ, ΠΏΠΎΠ΄ΠΎΠΉΠ΄Π΅Ρ Π΄ΡΡΠ³Π°Ρ ΠΊΠ½ΠΈΠ³Π°. ΠΡΠ΅Π΄ΠΏΠΎΠ»Π°Π³Π°Π΅ΡΡΡ, ΡΡΠΎ ΠΎΠ½Π° Π»ΡΡΡΠ΅ ΠΏΠΎΠ΄Π°Π΅Ρ ΠΌΠ°ΡΠ΅ΡΠΈΠ°Π» ΠΈ Π΄ΠΎΠ»ΠΆΠ½Π° ΠΏΡΠΈΠΉΡΠΈ Π½Π° ΡΠΌΠ΅Π½Ρ ΠΏΠ΅ΡΠ²ΠΎΠΉ ΠΊΠ½ΠΈΠ³Π΅. Π ΡΠ΅ΠΌ, ΠΊΠΎΠΌΡ Π½ΡΠ°Π²ΠΈΡΡΡ ΡΡΠΈΡΡΡΡ Π½Π° ΠΏΡΠΈΠΌΠ΅ΡΠ°Ρ , ΠΏΠΎΠ΄ΠΎΠΉΠ΄Π΅Ρ Rust by Example.
ΠΡΠ΄ΡΠΌ, Π·Π½Π°ΠΊΠΎΠΌΡΠΌ Ρ C++, ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΠΈΠ½ΡΠ΅ΡΠ΅ΡΠ½Π° ΠΊΠ½ΠΈΠ³Π°, Π° ΡΠΎΡΠ½Π΅Π΅ porting guide, ΡΡΠ°ΡΠ°ΡΡΠ°ΡΡΡ ΠΏΠΎΠ΄Π°ΡΡ ΠΌΠ°ΡΠ΅ΡΠΈΠ°Π» Π² ΡΡΠ°Π²Π½Π΅Π½ΠΈΠΈ Ρ C++ ΠΈ Π΄Π΅Π»Π°ΡΡΠ°Ρ Π°ΠΊΡΠ΅Π½Ρ Π½Π° ΡΠ°Π·Π»ΠΈΡΠΈΡΡ ΡΠ·ΡΠΊΠΎΠ² ΠΈ Π½Π° ΡΠΎΠΌ, ΠΊΠ°ΠΊΠΈΠ΅ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ Rust ΡΠ΅ΡΠ°Π΅Ρ Π»ΡΡΡΠ΅.
ΠΡΠ»ΠΈ Π²Π°Ρ ΠΈΠ½ΡΠ΅ΡΠ΅ΡΡΠ΅Ρ ΠΈΡΡΠΎΡΠΈΡ ΡΠ°Π·Π²ΠΈΡΠΈΡ ΡΠ·ΡΠΊΠ° ΠΈ Π²Π·Π³Π»ΡΠ΄ Ρ ΡΠΎΠΉ ΡΡΠΎΡΠΎΠ½Ρ Π±Π°ΡΡΠΈΠΊΠ°Π΄, ΠΊΡΠ°ΠΉΠ½Π΅ ΡΠ΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡΡ Π±Π»ΠΎΠ³ΠΈ Aaron Turon ΠΈ Niko Matsakis. Π Π΅Π±ΡΡΠ° ΠΏΠΈΡΡΡ ΠΎΡΠ΅Π½Ρ ΠΆΠΈΠ²ΡΠΌ ΡΠ·ΡΠΊΠΎΠΌ ΠΈ ΡΠ°ΡΡΠΊΠ°Π·ΡΠ²Π°ΡΡ ΠΎ ΡΠ΅ΠΊΡΡΠΈΡ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ°Ρ ΡΠ·ΡΠΊΠ° ΠΈ ΠΎ ΡΠΎΠΌ, ΠΊΠ°ΠΊ ΠΏΡΠ΅Π΄ΠΏΠΎΠ»Π°Π³Π°Π΅ΡΡΡ ΠΈΡ ΡΠ΅ΡΠ°ΡΡ. ΠΠ°ΡΠ°ΡΡΡΡ ΠΈΠ· ΡΡΠΈΡ Π±Π»ΠΎΠ³ΠΎΠ² ΡΠ·Π½Π°Π΅ΡΡ ΠΊΡΠ΄Π° Π±ΠΎΠ»ΡΡΠ΅ Π°ΠΊΡΡΠ°Π»ΡΠ½ΠΎΠΉ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ, ΡΠ΅ΠΌ ΠΈΠ· Π΄ΡΡΠ³ΠΈΡ ΠΈΡΡΠΎΡΠ½ΠΈΠΊΠΎΠ².
ΠΠ°ΠΊΠΎΠ½Π΅Ρ, Π΅ΡΠ»ΠΈ Π²Ρ Π½Π΅ Π±ΠΎΠΈΡΠ΅ΡΡ Π΄ΡΠ°ΠΊΠΎΠ½ΠΎΠ² ΠΈ ΡΠ΅ΠΌΠ½ΡΡ ΡΠ³Π»ΠΎΠ², ΡΠΎ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π²Π·Π³Π»ΡΠ½ΡΡΡ Π½Π° Π Π°ΡΡΠΎΠ½ΠΎΠΌΠΈΠΊΠΎΠ½. Π’ΠΎΠ»ΡΠΊΠΎ ΠΏΡΠ΅Π΄ΡΠΏΡΠ΅ΠΆΠ΄Π°Ρ, ΠΏΠΎΡΠ»Π΅ ΠΏΡΠΎΡΡΠ΅Π½ΠΈΡ ΡΡΠΎΠΉ ΠΊΠ½ΠΈΠ³ΠΈ Π²Ρ ΡΠΆΠ΅ Π½Π΅ ΡΠΌΠΎΠΆΠ΅ΡΠ΅ ΡΠΌΠΎΡΡΠ΅ΡΡ Π½Π° Rust ΠΏΡΠ΅ΠΆΠ½ΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ. ΠΠΏΡΠΎΡΠ΅ΠΌ, Ρ ΠΎΡΠ²Π»Π΅ΠΊΡΡβ¦
ΠΠΎΠ²ΠΎΠ΅ Π² Rust 1.15
Π‘ ΠΌΠΎΠΌΠ΅Π½ΡΠ° Π²ΡΠΏΡΡΠΊΠ° 1.14 ΠΏΡΠΎΡΠ»ΠΎ ΠΎΠΊΠΎΠ»ΠΎ 6 Π½Π΅Π΄Π΅Π»Ρ. ΠΠ° ΡΡΠΎ Π²ΡΠ΅ΠΌΡ Π² Π½ΠΎΠ²ΡΠΉ ΡΠ΅Π»ΠΈΠ· ΡΡΠΏΠ΅Π»ΠΈ Π²ΠΎΠΉΡΠΈ 1443 ΠΏΠ°ΡΡΠ° (Π½Π΅ΡΠ»Π°Π±ΠΎ, ΠΏΡΠ°Π²Π΄Π°?) ΠΈΡΠΏΡΠ°Π²Π»ΡΡΡΠΈΠ΅ Π±Π°Π³ΠΈ ΠΈ Π΄ΠΎΠ±Π°Π²Π»ΡΡΡΠΈΠ΅ Π½ΠΎΠ²ΡΠ΅ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ. Π Π±ΡΠΊΠ²Π°Π»ΡΠ½ΠΎ Π½Π° Π΄Π½ΡΡ ΠΏΠΎΡΠ²ΠΈΠ»ΡΡ ΠΈ Ρ ΠΎΡΡΠΈΠΊΡ 1.15.1, Ρ Π½Π΅Π±ΠΎΠ»ΡΡΠΈΠΌΠΈ, Π½ΠΎ Π²Π°ΠΆΠ½ΡΠΌΠΈ ΠΈΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡΠΌΠΈ.
ΠΠ° ΠΏΠΎΠ΄ΡΠΎΠ±Π½ΠΎΡΡΡΠΌΠΈ ΠΌΠΎΠΆΠ½ΠΎ ΠΎΠ±ΡΠ°ΡΠΈΡΡΡΡ ΠΊ ΡΡΡΠ°Π½ΠΈΡΠ΅ Π°Π½ΠΎΠ½ΡΠ° ΠΈΠ»ΠΈ ΠΊ Π΄Π΅ΡΠ°Π»ΡΠ½ΠΎΠΌΡ ΠΎΠΏΠΈΡΠ°Π½ΠΈΡ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ (changelog). ΠΠ΄Π΅ΡΡ ΠΆΠ΅ ΠΌΡ ΡΠΊΠΎΠ½ΡΠ΅Π½ΡΡΠΈΡΡΠ΅ΠΌΡΡ Π½Π° Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ Π·Π°ΠΌΠ΅ΡΠ½ΡΡ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡΡ .
Cargo ΡΠΆΠ΅ Π²Π·ΡΠΎΡΠ»ΡΠΉ
CΠΈΡΡΠ΅ΠΌΠ° ΡΠ±ΠΎΡΠΊΠΈ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡΠ° ΠΈ ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΠΎΠΉ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ Rust Π±ΡΠ»Π° ΠΏΠ΅ΡΠ΅ΠΏΠΈΡΠ°Π½Π° Π½Π° ΡΠ°ΠΌ Rust Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ Cargo β ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΠΎΠ³ΠΎ ΠΏΠ°ΠΊΠ΅ΡΠ½ΠΎΠ³ΠΎ ΠΌΠ΅Π½Π΅Π΄ΠΆΠ΅ΡΠ° ΠΈ ΡΠΈΡΡΠ΅ΠΌΡ ΡΠ±ΠΎΡΠΊΠΈ, ΠΏΡΠΈΠ½ΡΡΠΎΠΉ Π² ΡΠΊΠΎΡΠΈΡΡΠ΅ΠΌΠ΅ Rust.
Π‘ ΡΡΠΎΠ³ΠΎ ΠΌΠΎΠΌΠ΅Π½ΡΠ° Cargo ΡΠ²Π»ΡΠ΅ΡΡΡ ΡΠΈΡΡΠ΅ΠΌΠΎΠΉ ΡΠ±ΠΎΡΠΊΠΈ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ. ΠΡΠΎ Π±ΡΠ» Π΄ΠΎΠ»Π³ΠΈΠΉ ΠΏΡΠΎΡΠ΅ΡΡ, Π½ΠΎ ΠΎΠ½ Π½Π°ΠΊΠΎΠ½Π΅Ρ-ΡΠΎ ΠΏΡΠΈΠ½Π΅Ρ ΡΠ²ΠΎΠΈ ΠΏΠ»ΠΎΠ΄Ρ. ΠΠ²ΡΠΎΡΡ ΡΡΠ²Π΅ΡΠΆΠ΄Π°ΡΡ, ΡΡΠΎ Π½ΠΎΠ²Π°Ρ ΡΠΈΡΡΠ΅ΠΌΠ° ΡΠ±ΠΎΡΠΊΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Ρ Π΄Π΅ΠΊΠ°Π±ΡΡ ΠΏΡΠΎΡΠ»ΠΎΠ³ΠΎ Π³ΠΎΠ΄Π° Π² master Π²Π΅ΡΠΊΠ΅ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΡ ΠΈ ΠΏΠΎΠΊΠ° Π²ΡΠ΅ ΠΈΠ΄Π΅Ρ Ρ ΠΎΡΠΎΡΠΎ.
Π£ΠΆΠ΅ Π΄Π°ΠΆΠ΅ Π·Π°Π²Π΅Π»ΠΈ ΡΠΆΠ΅ Π²ΠΌΠ΅ΡΠΆΠΈΠ»ΠΈ pull request Π½Π° ΡΠ΄Π°Π»Π΅Π½ΠΈΠ΅ Π²ΡΠ΅Ρ makefile; ΠΈΠ½ΡΠ΅Π³ΡΠ°ΡΠΈΡ Π·Π°ΠΏΠ»Π°Π½ΠΈΡΠΎΠ²Π°Π½Π° Π½Π° ΡΠ΅Π»ΠΈΠ· 1.17.
ΠΡΠ΅ ΡΡΠΎ Π³ΠΎΡΠΎΠ²ΠΈΡ ΠΏΠΎΡΠ²Ρ ΠΊ ΠΏΡΡΠΌΠΎΠΌΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ ΠΏΠ°ΠΊΠ΅ΡΠΎΠ² ΠΈΠ· crates.io Π΄Π»Ρ ΡΠ±ΠΎΡΠΊΠΈ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡΠ°, ΠΊΠ°ΠΊ ΠΈ Π² Π»ΡΠ±ΠΎΠΌ Π΄ΡΡΠ³ΠΎΠΌ ΠΏΡΠΎΠ΅ΠΊΡΠ΅. Π Π΅ΡΠ΅ ΡΡΠΎ Π½Π΅ΠΏΠ»ΠΎΡ Π°Ρ Π΄Π΅ΠΌΠΎΠ½ΡΡΡΠ°ΡΠΈΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠ΅ΠΉ Cargo.
ΠΠΎΠ²ΡΠ΅ Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΡ
ΠΠΎΠ»Π΅Π΅ ΡΠΎΠ³ΠΎ, ΡΠΆΠ΅ Π΅ΡΡΡ ΠΏΡΠΎΠ΅ΠΊΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ Rust Π² embedded ΠΎΠΊΡΡΠΆΠ΅Π½ΠΈΠΈ. Π Π°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΈ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡΠ° ΠΎΠΏΡΠ°ΡΠΈΠ²Π°ΡΡ ΡΠΎΠΎΠ±ΡΠ΅ΡΡΠ²ΠΎ Π΄Π»Ρ Π²ΡΡΡΠ½Π΅Π½ΠΈΡ ΠΏΠΎΡΡΠ΅Π±Π½ΠΎΡΡΠ΅ΠΉ ΡΡΠΎΠΉ ΠΏΠΎΠΊΠ° ΠΌΠ°Π»ΠΎΡΠΈΡΠ»Π΅Π½Π½ΠΎΠΉ, Π½ΠΎ Π²Π°ΠΆΠ½ΠΎΠΉ Π³ΡΡΠΏΠΏΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Π΅ΠΉ.
ΠΡΡΡΡΠ΅Π΅! ΠΡΡΠ΅! Π‘ΠΈΠ»ΡΠ½Π΅Π΅!
ΠΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡ ΡΡΠ°Π» Π±ΡΡΡΡΠ΅Π΅. Π Π½Π΅Π΄Π°Π²Π½ΠΎ Π΅ΡΠ΅ ΠΈ ΠΎΠ±ΡΡΠ²ΠΈΠ»ΠΈ ΠΎ ΡΠΎΠΌ, ΡΡΠΎ ΡΠΈΡΡΠ΅ΠΌΠ° ΠΈΠ½ΠΊΡΠ΅ΠΌΠ΅Π½ΡΠ°Π»ΡΠ½ΠΎΠΉ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΈΠΈ ΠΏΠ΅ΡΠ΅ΡΠ»Π° Π² ΡΠ°Π·Ρ Π±Π΅ΡΠ°-ΡΠ΅ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ. ΠΠ° ΠΌΠΎΠΈΡ ΠΏΡΠΎΠ΅ΠΊΡΠ°Ρ Π²ΡΠ΅ΠΌΡ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΈΠΈ ΠΏΠΎΡΠ»Π΅ Π½Π΅Π·Π½Π°ΡΠΈΡΠ΅Π»ΡΠ½ΡΡ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ ΡΠΌΠ΅Π½ΡΡΠΈΠ»ΠΎΡΡ Ρ
4 ΡΠ΅ΠΊΡΠ½Π΄, Ρ ΠΎΡΡ ΠΎΠΊΠΎΠ½ΡΠ°ΡΠ΅Π»ΡΠ½Π°Ρ Π»ΠΈΠ½ΠΊΠΎΠ²ΠΊΠ° Π²ΡΠ΅ Π΅ΡΠ΅ Π·Π°Π½ΠΈΠΌΠ°Π΅Ρ ΠΏΡΠΈΠ»ΠΈΡΠ½ΠΎΠ΅ Π²ΡΠ΅ΠΌΡ. ΠΠΎΠΊΠ° ΠΈΠ½ΠΊΡΠ΅ΠΌΠ΅Π½ΡΠ°Π»ΡΠ½Π°Ρ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΈΡ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ ΡΠΎΠ»ΡΠΊΠΎ Π² Π½ΠΎΡΠ½ΡΡ ΡΠ±ΠΎΡΠΊΠ°Ρ ΠΈ ΡΠΈΠ»ΡΠ½ΠΎ Π·Π°Π²ΠΈΡΠΈΡ ΠΎΡ Ρ Π°ΡΠ°ΠΊΡΠ΅ΡΠ° Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠ΅ΠΉ, Π½ΠΎ ΠΏΡΠΎΠ³ΡΠ΅ΡΡ ΡΠ°Π΄ΡΠ΅Ρ.
ΠΠ»Π³ΠΎΡΠΈΡΠΌ slice::sort() Π±ΡΠ» ΠΏΠ΅ΡΠ΅ΠΏΠΈΡΠ°Π½ ΠΈ ΡΡΠ°Π» Π½Π°ΠΌΠ½ΠΎΠ³ΠΎ, Π½Π°ΠΌΠ½ΠΎΠ³ΠΎ, Π½Π°ΠΌΠ½ΠΎΠ³ΠΎ Π±ΡΡΡΡΠ΅Π΅. Π’Π΅ΠΏΠ΅ΡΡ ΡΡΠΎ Π³ΠΈΠ±ΡΠΈΠ΄Π½Π°Ρ ΡΠΎΡΡΠΈΡΠΎΠ²ΠΊΠ°, ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π½Π°Ρ ΠΏΠΎΠ΄ Π²Π»ΠΈΡΠ½ΠΈΠ΅ΠΌ Timsort. Π Π°Π½ΡΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π»Π°ΡΡ ΠΎΠ±ΡΡΠ½Π°Ρ ΡΠΎΡΡΠΈΡΠΎΠ²ΠΊΠ° ΡΠ»ΠΈΡΠ½ΠΈΠ΅ΠΌ.
Π C++ ΠΌΡ ΠΌΠΎΠΆΠ΅ΠΌ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΡΡ ΠΏΠ΅ΡΠ΅ΠΊΡΡΠ²Π°ΡΡΡΡ ΡΠΏΠ΅ΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΡ ΡΠ°Π±Π»ΠΎΠ½Π° Π΄Π»Ρ Π½Π΅ΠΊΠΎΡΠΎΡΠΎΠ³ΠΎ ΡΠΈΠΏΠ°, Π½ΠΎ ΠΏΠΎΠΊΠ° Π½Π΅ ΠΌΠΎΠΆΠ΅ΠΌ Π½Π°Π»ΠΎΠΆΠΈΡΡ ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ΠΈΡ Π½Π° ΡΠΎ, ΠΊΠ°ΠΊΠΈΠ΅ ΡΠΈΠΏΡ Π²ΠΎΠΎΠ±ΡΠ΅ ΠΌΠΎΠ³ΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ Π΄Π»Ρ ΡΠΏΠ΅ΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΠΈ ΡΡΠΎΠ³ΠΎ ΡΠ°Π±Π»ΠΎΠ½Π°. Π Π°Π±ΠΎΡΡ Π² ΡΡΠΎΠΌ Π½Π°ΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠΈ Π²Π΅Π΄ΡΡΡΡ, Π½ΠΎ ΠΏΠΎΠΊΠ° Π²ΡΠ΅ ΠΎΡΠ΅Π½Ρ ΡΠ»ΠΎΠΆΠ½ΠΎ.
Π‘ΡΠ°Π±ΠΈΠ»ΡΠ½ΡΠΉ Rust Π²ΡΠ΅Π³Π΄Π° ΡΠΌΠ΅Π» Π·Π°Π΄Π°Π²Π°ΡΡ ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ΠΈΡ ΡΠΈΠΏΠ°ΠΆΠ΅ΠΉ, Π½ΠΎ Ρ Π½Π΅Π΄Π°Π²Π½ΠΈΡ ΠΏΠΎΡ ΠΏΠΎΡΠ²ΠΈΠ»Π°ΡΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ Π΄ΠΎΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΡΡ, Π° ΡΠΎΡΠ½Π΅Π΅ ΠΏΠ΅ΡΠ΅ΠΊΡΡΡΡ ΠΎΠ±ΠΎΠ±ΡΠ΅Π½Π½ΡΡ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ Π±ΠΎΠ»Π΅Π΅ ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΠΎΠΉ, Π΅ΡΠ»ΠΈ ΠΎΠ½Π° Π·Π°Π΄Π°Π΅Ρ Π±ΠΎΠ»Π΅Π΅ ΡΡΡΠΎΠ³ΠΈΠ΅ ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ΠΈΡ. ΠΡΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΠΎΠΏΡΠΈΠΌΠΈΠ·ΠΈΡΠΎΠ²Π°ΡΡ ΠΊΠΎΠ΄ Π΄Π»Ρ ΡΠ°ΡΡΠ½ΡΡ ΡΠ»ΡΡΠ°Π΅Π², Π½Π΅ Π½Π°ΡΡΡΠ°Ρ ΠΏΡΠΈ ΡΡΠΎΠΌ ΠΎΠ±ΠΎΠ±ΡΠ΅Π½Π½ΡΠΉ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ.
ΠΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° IDE
ΠΡΠΎΠ³ΠΎ ΠΏΠΎΠΊΠ° Π½Π΅Ρ Π² ΡΡΠ°Π±ΠΈΠ»ΡΠ½ΠΎΠΌ Rust, Π½ΠΎ ΡΠ΅ΠΌ Π½Π΅ ΠΌΠ΅Π½Π΅Π΅ Π½ΠΎΠ²ΠΎΡΡΡ ΡΠ»ΠΈΡΠΊΠΎΠΌ Π·Π½Π°ΡΠΈΡΠ΅Π»ΡΠ½Π°Ρ, ΡΡΠΎΠ±Ρ ΠΎ Π½Π΅ΠΉ ΡΠΌΠΎΠ»ΡΠ°ΡΡ. ΠΠ΅Π»ΠΎ Π² ΡΠΎΠΌ, ΡΡΠΎ Π½Π΅Π΄Π°Π²Π½ΠΎ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΈ Rust Language Server ΠΎΠ±ΡΡΠ²ΠΈΠ»ΠΈ ΠΎ Π²ΡΡ ΠΎΠ΄Π΅ Π°Π»ΡΡΠ°-Π²Π΅ΡΡΠΈΠΈ ΡΠ²ΠΎΠ΅Π³ΠΎ Π΄Π΅ΡΠΈΡΠ°.
Language Server Protocol ΡΡΠΎ ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΡΠΉ ΠΏΡΠΎΡΠΎΠΊΠΎΠ», ΠΊΠΎΡΠΎΡΡΠΉ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΡΠ΅Π΄Π°ΠΊΡΠΎΡΠ°ΠΌ ΠΈ ΡΡΠ΅Π΄Π°ΠΌ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ ΠΎΠ±ΡΠ°ΡΡΡΡ Π½Π° ΠΎΠ΄Π½ΠΎΠΌ ΡΠ·ΡΠΊΠ΅ Ρ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡΠ°ΠΌΠΈ. ΠΠ½ Π°Π±ΡΡΡΠ°Π³ΠΈΡΡΠ΅Ρ ΡΠ°ΠΊΠΈΠ΅ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ, ΠΊΠ°ΠΊ Π°Π²ΡΠΎΠ΄ΠΎΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ Π²Π²ΠΎΠ΄Π°, ΠΏΠ΅ΡΠ΅Ρ ΠΎΠ΄ ΠΊ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΡ, ΡΠ΅ΡΠ°ΠΊΡΠΎΡΠΈΠ½Π³, ΡΠ°Π±ΠΎΡΡ Ρ Π±ΡΡΠ΅ΡΠ°ΠΌΠΈ ΠΈ Ρ.Π΄.
ΠΡΠΎ ΠΎΠ·Π½Π°ΡΠ°Π΅Ρ, ΡΡΠΎ Π»ΡΠ±ΠΎΠΉ ΡΠ΅Π΄Π°ΠΊΡΠΎΡ ΠΈΠ»ΠΈ IDE, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°ΡΡ LSP Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ ΠΏΠΎΠ»ΡΡΠ°ΡΡ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΡ Π²ΡΠ΅Ρ LSP-ΡΠΎΠ²ΠΌΠ΅ΡΡΠΈΠΌΡΡ ΡΠ·ΡΠΊΠΎΠ².
Π£ΠΆΠ΅ ΡΠ΅ΠΉΡΠ°Ρ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠΏΡΠΎΠ±ΠΎΠ²Π°ΡΡ Π±Π°Π·ΠΎΠ²ΡΠ΅ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ Π½Π° ΡΠΎΠ²ΠΌΠ΅ΡΡΠΈΠΌΡΡ ΡΠ΅Π΄Π°ΠΊΡΠΎΡΠ°Ρ , ΡΠΎΠ»ΡΠΊΠΎ Π°Π²ΡΠΎΡΡ Π½Π°ΡΡΠΎΡΡΠ΅Π»ΡΠ½ΠΎ ΡΠΎΠ²Π΅ΡΡΡΡ ΠΎΡΡΠΎΡΠΎΠΆΠ½ΠΎ ΠΎΡΠ½ΠΎΡΠΈΡΡΡΡ ΠΊ ΡΠ²ΠΎΠΈΠΌ Π΄Π°Π½Π½ΡΠΌ, ΠΈΠ±ΠΎ ΠΊΠΎΠ΄ Π΅ΡΠ΅ Π΄ΠΎΠ²ΠΎΠ»ΡΠ½ΠΎ ΡΡΡΠΎΠΉ.
ΠΠ°ΠΊΡΠΎΡΡ Π² Rust
ΠΠ΅ΡΠ½Π΅ΠΌΡΡ ΠΊ Π½Π°ΡΠΈΠΌ Π±Π°ΡΠ°Π½Π°ΠΌ.
Π‘ ΡΠ°ΠΌΠΎΠ³ΠΎ Π½Π°ΡΠ°Π»Π° ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΡΡ Ρ ΠΎΡΠ΅Π»ΠΈ ΠΏΠΈΡΠ°ΡΡ ΠΏΠΎΠΌΠ΅Π½ΡΡΠ΅, Π° ΠΏΠΎΠ»ΡΡΠ°ΡΡ ΠΏΠΎΠ±ΠΎΠ»ΡΡΠ΅. Π ΡΠ°Π·Π½ΠΎΠ΅ Π²ΡΠ΅ΠΌΡ ΠΏΠΎΠ΄ ΡΡΠΈΠΌ ΠΏΠΎΠ½ΠΈΠΌΠ°Π»ΠΈ ΡΠ°Π·Π½ΡΠ΅ Π²Π΅ΡΠΈ, Π½ΠΎ ΡΡΠ»ΠΎΠ²Π½ΠΎ ΠΌΠΎΠΆΠ½ΠΎ Π²ΡΠ΄Π΅Π»ΠΈΡΡ Π΄Π²Π° ΠΌΠ΅ΡΠΎΠ΄Π° ΡΠΎΠΊΡΠ°ΡΠ΅Π½ΠΈΡ ΠΊΠΎΠ΄Π°:
ΠΠ΅ΡΠ²ΡΠΉ ΠΏΡΠΈΠ½ΡΠΈΠΏ Π±ΠΎΠ»ΡΡΠ΅ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΠ΅Ρ ΡΡΠ°Π΄ΠΈΡΠΈΠΎΠ½Π½ΠΎΠΉ Π΄Π΅ΠΊΠΎΠΌΠΏΠΎΠ·ΠΈΡΠΈΠΈ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌ: ΡΠ°Π·Π΄Π΅Π»Π΅Π½ΠΈΡ ΠΊΠΎΠ΄Π° Π½Π° ΡΡΠ½ΠΊΡΠΈΠΈ, ΠΌΠ΅ΡΠΎΠ΄Ρ, ΠΊΠ»Π°ΡΡΡ ΠΈ Ρ. ΠΏ.
Π Π²ΡΠΎΡΠΎΠΌΡ ΠΌΠΎΠΆΠ½ΠΎ ΠΎΡΠ½Π΅ΡΡΠΈ ΠΌΠ°ΠΊΡΠΎΡΡ, ΠΈΠ½ΠΊΠ»ΡΠ΄Ρ ΠΈ ΠΏΡΠΎΡΠΈΠΉ ΠΏΡΠ΅ΠΏΡΠΎΡΠ΅ΡΡΠΈΠ½Π³. Π ΡΠ·ΡΠΊΠ΅ Rust Π΄Π»Ρ ΡΡΠΎΠ³ΠΎ ΠΏΡΠ΅Π΄ΡΡΠΌΠΎΡΡΠ΅Π½ΠΎ ΡΡΠΈ ΠΌΠ΅Ρ Π°Π½ΠΈΠ·ΠΌΠ°:
ΠΠ±ΡΡΠ½ΡΠ΅ ΠΌΠ°ΠΊΡΠΎΡΡ (Π² Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΠΈ macro by example) ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΡΡ, ΠΊΠΎΠ³Π΄Π° Ρ ΠΎΡΠ΅ΡΡΡ ΠΈΠ·Π±Π΅ΠΆΠ°ΡΡ ΠΏΠΎΠ²ΡΠΎΡΠ΅Π½ΠΈΡ ΠΎΠ΄Π½ΠΎΠΎΠ±ΡΠ°Π·Π½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π°, Π½ΠΎ Π²ΡΠ΄Π΅Π»ΡΡΡ Π΅Π³ΠΎ Π² ΡΡΠ½ΠΊΡΠΈΡ Π½Π΅ΡΠ°ΡΠΈΠΎΠ½Π°Π»ΡΠ½ΠΎ, Π»ΠΈΠ±ΠΎ Π½Π΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ. ΠΠ°ΠΊΡΠΎΡΡ vec! ΠΈΠ»ΠΈ println! ΡΠ²Π»ΡΡΡΡΡ ΠΏΡΠΈΠΌΠ΅ΡΠ°ΠΌΠΈ ΡΠ°ΠΊΠΈΡ ΠΌΠ°ΠΊΡΠΎΡΠΎΠ². ΠΠ°Π΄Π°ΡΡΡΡ Π΄Π΅ΠΊΠ»Π°ΡΠ°ΡΠΈΠ²Π½ΡΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ. Π Π°Π±ΠΎΡΠ°ΡΡ ΠΏΠΎ ΠΏΡΠΈΠ½ΡΠΈΠΏΡ ΡΠΎΠΏΠΎΡΡΠ°Π²Π»Π΅Π½ΠΈΡ ΠΈ ΠΏΠΎΠ΄ΡΡΠ°Π½ΠΎΠ²ΠΊΠΈ ΠΏΠΎ ΠΎΠ±ΡΠ°Π·ΡΡ. Π Π΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ ΠΎΡΠ½ΠΎΠ²Π°Π½Π° Π½Π° Π±Π°Π·Π΅ ΡΠ°Π±ΠΎΡΡ 1986-Π³ΠΎ Π³ΠΎΠ΄Π°, ΠΈΠ· ΠΊΠΎΡΠΎΡΠΎΠΉ ΠΎΠ½ΠΈ ΠΏΠΎΠ»ΡΡΠΈΠ»ΠΈ ΡΠ²ΠΎΠ΅ ΠΏΠΎΠ»Π½ΠΎΠ΅ Π½Π°Π·Π²Π°Π½ΠΈΠ΅.
ΠΡΠΎΡΠ΅Π΄ΡΡΠ½ΡΠ΅ ΠΌΠ°ΠΊΡΠΎΡΡ ΡΠ²Π»ΡΡΡΡΡ ΠΏΠ΅ΡΠ²ΠΎΠΉ ΠΏΠΎΠΏΡΡΠΊΠΎΠΉ ΡΡΠ°Π±ΠΈΠ»ΠΈΠ·Π°ΡΠΈΠΈ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ° ΠΏΠ»Π°Π³ΠΈΠ½ΠΎΠ² ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡΠ°. Π ΠΎΡΠ»ΠΈΡΠΈΠ΅ ΠΎΡ ΠΎΠ±ΡΡΠ½ΡΡ Π΄Π΅ΠΊΠ»Π°ΡΠ°ΡΠΈΠ²Π½ΡΡ ΠΌΠ°ΠΊΡΠΎΡΠΎΠ², ΠΏΡΠΎΡΠ΅Π΄ΡΡΠ½ΡΠ΅ ΠΌΠ°ΠΊΡΠΎΡΡ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΡΡ ΡΠΎΠ±ΠΎΠΉ ΡΡΠ°Π³ΠΌΠ΅Π½Ρ ΠΊΠΎΠ΄Π° Π½Π° Rust, ΠΊΠΎΡΠΎΡΡΠΉ Π²ΡΠΏΠΎΠ»Π½ΡΠ΅ΡΡΡ Π² ΠΏΡΠΎΡΠ΅ΡΡΠ΅ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΈΠΈ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ ΠΈ ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠΎΠΌ ΡΠ°Π±ΠΎΡΡ ΠΊΠΎΡΠΎΡΠΎΠ³ΠΎ ΡΠ²Π»ΡΠ΅ΡΡΡ Π½Π°Π±ΠΎΡ ΡΠΎΠΊΠ΅Π½ΠΎΠ². ΠΡΠΈ ΡΠΎΠΊΠ΅Π½Ρ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡ Π±ΡΠ΄Π΅Ρ ΠΈΠ½ΡΠ΅ΡΠΏΡΠ΅ΡΠΈΡΠΎΠ²Π°ΡΡ ΠΊΠ°ΠΊ ΡΠ΅Π·ΡΠ»ΡΡΠ°Ρ ΠΏΠΎΠ΄ΡΡΠ°Π½ΠΎΠ²ΠΊΠΈ ΠΌΠ°ΠΊΡΠΎΡΠ°.
ΠΠ»Π°Π³ΠΈΠ½Ρ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡΠ° ΡΠ²Π»ΡΡΡΡΡ ΡΠ°ΠΌΡΠΌ ΠΌΠΎΡΠ½ΡΠΌ, Π½ΠΎ ΡΠ»ΠΎΠΆΠ½ΡΠΌ ΠΈ Π½Π΅ΡΡΠ°Π±ΠΈΠ»ΡΠ½ΡΠΌ (Π² ΡΠΌΡΡΠ»Π΅ API) ΡΡΠ΅Π΄ΡΡΠ²ΠΎΠΌ, ΠΊΠΎΡΠΎΡΠΎΠ΅ Π΄ΠΎΡΡΡΠΏΠ½ΠΎ ΡΠΎΠ»ΡΠΊΠΎ Π² Π½ΠΎΡΠ½ΡΡ ΡΠ±ΠΎΡΠΊΠ°Ρ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡΠ°. Π Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΠΈ ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½ ΠΏΡΠΈΠΌΠ΅Ρ ΠΏΠ»Π°Π³ΠΈΠ½Π° ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠΈ ΡΠΈΠΌΡΠΊΠΈΡ ΡΠΈΡΡ Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΡΠΈΡΠ»ΠΎΠ²ΡΡ Π»ΠΈΡΠ΅ΡΠ°Π»ΠΎΠ².
ΠΡΠΈΠΌΠ΅Ρ ΠΌΠ°ΠΊΡΠΎΡΠ°
ΠΠΎΡΠΊΠΎΠ»ΡΠΊΡ ΠΌΠ°ΠΊΡΠΎΡΡ Π½Π΅ ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½Ρ Π»Π΅ΠΊΡΠΈΡΠ΅ΡΠΊΠΈΠΌ ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡΠΎΠΌ ΡΡΠ½ΠΊΡΠΈΠΈ, ΠΎΠ½ΠΈ ΠΌΠΎΠ³ΡΡ Π³Π΅Π½Π΅ΡΠΈΡΠΎΠ²Π°ΡΡ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΡ ΠΈ Π΄Π»Ρ Π±ΠΎΠ»Π΅Π΅ Π²ΡΡΠΎΠΊΠΎΡΡΠΎΠ²Π½Π΅Π²ΡΡ ΡΡΡΠ½ΠΎΡΡΠ΅ΠΉ. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΌΠ°ΠΊΡΠΎΡΠΎΠΌ ΠΌΠΎΠΆΠ½ΠΎ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΡΡ ΡΠ΅Π»ΡΠΉ impl Π±Π»ΠΎΠΊ, ΠΈΠ»ΠΈ ΠΌΠ΅ΡΠΎΠ΄ Π²ΠΌΠ΅ΡΡΠ΅ Ρ ΠΈΠΌΠ΅Π½Π΅ΠΌ, ΡΠΏΠΈΡΠΊΠΎΠΌ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠ² ΠΈ ΡΠΈΠΏΠΎΠΌ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅ΠΌΠΎΠ³ΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΡ.
ΠΠ°ΠΊΡΠΎ-Π²ΡΡΠ°Π²ΠΊΠΈ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½Ρ ΠΏΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈ Π²ΠΎ Π²ΡΠ΅Ρ ΠΌΠ΅ΡΡΠ°Ρ ΠΈΠ΅ΡΠ°ΡΡ ΠΈΠΈ ΠΌΠΎΠ΄ΡΠ»Ρ:
ΠΠ°ΠΊΡΠΎΡΡ Π΄ΠΎΠ²ΠΎΠ»ΡΠ½ΠΎ ΡΠ°ΡΡΠΎ ΠΏΡΠΈΠΌΠ΅Π½ΡΡΡΡΡ Π² Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ°Ρ , ΠΊΠΎΠ³Π΄Π° ΠΏΡΠΈΡ ΠΎΠ΄ΠΈΡΡΡ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΡΡ ΠΎΠ΄Π½ΠΎΡΠΈΠΏΠ½ΡΠ΅ ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΈΠΈ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ ΡΠ΅ΡΠΈΡ impl Π΄Π»Ρ ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΡΡ ΡΠΈΠΏΠΎΠ² Π΄Π°Π½Π½ΡΡ .
ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Π² ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΠΎΠΉ Π±ΠΈΠ±ΠΈΠ»ΠΎΡΠ΅ΠΊΠ΅ Rust ΠΌΠ°ΠΊΡΠΎΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΡΡ Π΄Π»Ρ ΠΊΠΎΠΌΠΏΠ°ΠΊΡΠ½ΠΎΠ³ΠΎ ΠΎΠ±ΡΡΠ²Π»Π΅Π½ΠΈΡ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ ΡΠΈΠΏΠ°ΠΆΠ° PartialEq Π΄Π»Ρ Π²ΡΠ΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΡΡ ΡΠΎΡΠ΅ΡΠ°Π½ΠΈΠΉ ΡΡΠ΅Π·ΠΎΠ², ΠΌΠ°ΡΡΠΈΠ²ΠΎΠ² ΠΈ Π²Π΅ΠΊΡΠΎΡΠΎΠ²:
Π£ΠΊΠ°Π·Π°Π½ΠΈΠ΅ ΡΠΈΠΏΠΎΠ² ΠΌΠ΅ΡΠ°ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ Π±ΠΎΠ»Π΅Π΅ ΡΠΎΡΠ½ΠΎ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΡΡ ΠΎΠ±Π»Π°ΡΡΡ ΠΏΡΠΈΠΌΠ΅Π½ΠΈΠΌΠΎΡΡΠΈ ΠΌΠ°ΠΊΡΠΎΡΠ°, Π° ΡΠ°ΠΊΠΆΠ΅ ΠΎΡΠ»ΠΎΠ²ΠΈΡΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΡΠ΅ ΠΎΡΠΈΠ±ΠΊΠΈ.
ΠΡΡΡΠ΅ΡΠΈΠ² Π² ΠΊΠΎΠ΄Π΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΌΠ°ΠΊΡΠΎΡΠ°, ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡ Π²ΡΠ±Π΅ΡΠ΅Ρ ΡΡ Π²Π΅ΡΠ²Ρ, ΠΊΠΎΡΠΎΡΠ°Ρ ΠΏΠΎΠ΄Ρ ΠΎΠ΄ΠΈΡ Π΄Π»Ρ Π΄Π°Π½Π½ΠΎΠ³ΠΎ ΡΠ»ΡΡΠ°Ρ ΠΈ Π·Π°ΠΌΠ΅Π½ΠΈΡ Π² Π΄Π΅ΡΠ΅Π²Π΅ ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΈΡ ΠΌΠ°ΠΊΡΠΎΡΠ° Π½Π° ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠ΅Π΅ Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ ΠΏΠΎΠ΄ΡΡΠ°Π½ΠΎΠ²ΠΊΠΈ. ΠΡΠ»ΠΈ Π² ΡΠ΅Π»Π΅ ΠΌΠ°ΠΊΡΠΎΡΠ° ΠΏΠΎΠ΄Ρ ΠΎΠ΄ΡΡΠ΅ΠΉ ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΈΠΈ Π½Π΅ Π½Π°ΡΠ»ΠΎΡΡ, ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡ ΡΠ³Π΅Π½Π΅ΡΠΈΡΡΠ΅Ρ ΠΎΡΠΌΡΡΠ»Π΅Π½Π½ΠΎΠ΅ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ ΠΎΠ± ΠΎΡΠΈΠ±ΠΊΠ΅.
Π§ΠΈΡΡΠΎΡΠ° ΠΈ ΠΏΠΎΡΡΠ΄ΠΎΠΊ
ΠΠ°ΠΊΡΠΎΡ Π² Rust Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±ΡΡΡ Π½Π°ΠΏΠΈΡΠ°Π½ ΡΠ°ΠΊ, ΡΡΠΎΠ±Ρ Π³Π΅Π½Π΅ΡΠΈΡΠΎΠ²Π°ΡΡ Π»Π΅ΠΊΡΠΈΡΠ΅ΡΠΊΠΈ ΠΊΠΎΡΡΠ΅ΠΊΡΠ½ΡΠΉ ΠΊΠΎΠ΄. ΠΡΠΎ ΠΎΠ·Π½Π°ΡΠ°Π΅Ρ, ΡΡΠΎ Π½Π΅ Π²ΡΡΠΊΠΈΠΉ Π½Π°Π±ΠΎΡ ΡΠΈΠΌΠ²ΠΎΠ»ΠΎΠ² ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ Π²Π°Π»ΠΈΠ΄Π½ΡΠΌ ΠΌΠ°ΠΊΡΠΎΡΠΎΠΌ. ΠΡΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΠΈΠ·Π±Π΅ΠΆΠ°ΡΡ ΠΌΠ½ΠΎΠ³ΠΈΡ ΠΏΡΠΎΠ±Π»Π΅ΠΌ, ΡΠ²ΡΠ·Π°Π½Π½ΡΡ Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ ΠΏΡΠ΅ΠΏΡΠΎΡΠ΅ΡΡΠΎΡΠ° Π² C/C++.
Π Π±Π΅Π·ΠΎΠ±ΠΈΠ΄Π½ΠΎΠΌ Ρ Π²ΠΈΠ΄Ρ ΡΡΠ°Π³ΠΌΠ΅Π½ΡΠ΅ ΠΊΠΎΠ΄Π° ΠΌΡ Π²ΠΌΠ΅ΡΡΠΎ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ° Π²ΡΡΠ°ΡΠΈΠ»ΠΈ Π΄Π²Π°, Π²ΡΡΠΈΡΠ»ΠΈΠ»ΠΈ Π½Π΅ ΡΠΎΡ ΡΠ΅Π·ΡΠ»ΡΡΠ°Ρ, ΠΊΠ°ΠΊΠΎΠΉ ΠΎΠΆΠΈΠ΄Π°Π»ΠΈ, Π° ΠΏΠΎΡΠ»Π΅Π΄Π½Π΅ΠΉ ΡΡΡΠΎΠΊΠΎΠΉ Π΅ΡΠ΅ ΠΈ ΡΠΏΡΠΎΠ²ΠΎΡΠΈΡΠΎΠ²Π°Π»ΠΈ Π½Π΅ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠ΅ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅. Π’ΡΠΈ ΡΠ΅ΡΡΠ΅Π·Π½ΡΡ ΠΎΡΠΈΠ±ΠΊΠΈ Π½Π° Π΄Π²Π΅ ΡΡΡΠΎΠΊΠΈ ΠΊΠΎΠ΄Π° β ΡΡΠΎ ΠΊΠ°ΠΊ-ΡΠΎ ΠΌΠ½ΠΎΠ³ΠΎΠ²Π°ΡΠΎ.
ΠΠΎΠ½Π΅ΡΠ½ΠΎ, ΠΏΡΠΈΠΌΠ΅Ρ ΡΠΈΠ½ΡΠ΅ΡΠΈΡΠ΅ΡΠΊΠΈΠΉ, Π½ΠΎ ΠΌΡ Π²ΡΠ΅ ΠΏΡΠ΅ΠΊΡΠ°ΡΠ½ΠΎ Π·Π½Π°Π΅ΠΌ, ΠΊΠ°ΠΊ ΠΏΠΎΡΡΠΎΡΠ½Π½Π°Ρ ΡΠΌΠ΅Π½Π° ΡΡΠ΅Π±ΠΎΠ²Π°Π½ΠΈΠΉ ΠΈ Π»ΡΠ΄Π΅ΠΉ Π² ΠΊΠΎΠΌΠ°Π½Π΄Π΅ ΠΌΠΎΠ³ΡΡ Π·Π°ΠΏΡΡΠ°ΡΡ Π΄Π°ΠΆΠ΅ Ρ ΠΎΡΠΎΡΠΈΠΉ Π½Π΅ΠΊΠΎΠ³Π΄Π° ΠΊΠΎΠ΄.
ΠΠΎΡΠ΅Π½Ρ Π·Π»Π° Π»Π΅ΠΆΠΈΡ Π² ΡΠΎΠΌ, ΡΡΠΎ ΠΏΡΠ΅ΠΏΡΠΎΡΠ΅ΡΡΠΎΡ C/C++ ΠΎΡΡΠ΄ΡΠ΅Ρ Π½Π° ΡΡΠΎΠ²Π½Π΅ ΡΠ΅ΠΊΡΡΠ°, Π° ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡΡ ΠΏΡΠΈΡ ΠΎΠ΄ΠΈΡΡΡ ΡΠ°Π·Π±ΠΈΡΠ°ΡΡ ΡΠΆΠ΅ ΠΈΡΠΏΠΎΡΡΠ΅Π½Π½ΡΡ ΠΏΡΠ΅ΠΏΡΠΎΡΠ΅ΡΡΠΎΡΠΎΠΌ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ.
ΠΠ°ΠΏΡΠΎΡΠΈΠ², ΠΌΠ°ΠΊΡΠΎΡΡ Π² Rust ΡΠ°Π·Π±ΠΈΡΠ°ΡΡΡΡ ΠΈ ΠΏΡΠΈΠΌΠ΅Π½ΡΡΡΡΡ ΡΠ°ΠΌΠΈΠΌ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡΠΎΠΌ ΠΈ ΡΠ°Π±ΠΎΡΠ°ΡΡ Π½Π° ΡΡΠΎΠ²Π½Π΅ ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ Π΄Π΅ΡΠ΅Π²Π° ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ. ΠΠΎΡΡΠΎΠΌΡ ΠΎΠΏΠΈΡΠ°Π½Π½ΡΠ΅ Π²ΡΡΠ΅ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ Π½Π΅ ΠΌΠΎΠ³ΡΡ Π²ΠΎΠ·Π½ΠΈΠΊΠ½ΡΡΡ Π² ΠΏΡΠΈΠ½ΡΠΈΠΏΠ΅.
Π’Π°ΠΊΠΈΠ΅ ΠΌΠ°ΠΊΡΠΎΡΡ Π½Π°Π·ΡΠ²Π°ΡΡΡΡ Π³ΠΈΠ³ΠΈΠ΅Π½ΠΈΡΠ½ΡΠΌΠΈ. ΠΠ΄Π½ΠΈΠΌ ΠΈΠ· ΡΠ»Π΅Π΄ΡΡΠ²ΠΈΠΉ ΡΠ²Π»ΡΠ΅ΡΡΡ ΡΠΎ, ΡΡΠΎ ΠΌΠ°ΠΊΡΠΎΡ Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ ΠΎΠ±ΡΡΠ²ΠΈΡΡ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ, Π²ΠΈΠ΄ΠΈΠΌΡΡ Π·Π° Π΅Π³ΠΎ ΠΏΡΠ΅Π΄Π΅Π»Π°ΠΌΠΈ.
ΠΠ°ΡΠΎ Π² ΠΏΡΠ΅Π΄Π΅Π»Π°Ρ ΠΌΠ°ΠΊΡΠΎΡΠ° ΠΌΠΎΠΆΠ½ΠΎ Π·Π°Π²ΠΎΠ΄ΠΈΡΡ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅, ΠΊΠΎΡΠΎΡΡΠ΅ Π³Π°ΡΠ°Π½ΡΠΈΡΠΎΠ²Π°Π½ΠΎ Π½Π΅ ΠΏΠ΅ΡΠ΅ΡΠ΅ΠΊΡΡΡΡ Ρ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠΌΠΈ Π²ΡΡΠ΅ ΠΏΠΎ ΠΊΠΎΠ΄Ρ. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΎΠΏΠΈΡΠ°Π½Π½ΡΠΉ Π²ΡΡΠ΅ ΠΌΠ°ΠΊΡΠΎΡ vec! ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠ΅ΡΠ΅ΠΏΠΈΡΠ°ΡΡ Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ ΠΏΡΠΎΠΌΠ΅ΠΆΡΡΠΎΡΠ½ΠΎΠΉ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ. ΠΠ»Ρ ΠΏΡΠΎΡΡΠΎΡΡ ΡΠ°ΡΡΠΌΠΎΡΡΠΈΠΌ ΡΠΎΠ»ΡΠΊΠΎ ΠΎΡΠ½ΠΎΠ²Π½ΡΡ Π²Π΅ΡΠ²Ρ:
ΠΏΠΎΡΠ»Π΅ ΠΏΠΎΠ΄ΡΡΠ°Π½ΠΎΠ²ΠΊΠΈ ΠΌΠ°ΠΊΡΠΎΡΠ° Π±ΡΠ΄Π΅Ρ ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°Π½ Π²
ΠΡΠΎΡΠ΅Π΄ΡΡΠ½ΡΠ΅ ΠΌΠ°ΠΊΡΠΎΡΡ
ΠΠΎΠ³Π΄Π° Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠ΅ΠΉ ΠΎΠ±ΡΡΠ½ΡΡ ΠΌΠ°ΠΊΡΠΎΡΠΎΠ² Π½Π΅Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ, Π² Π±ΠΎΠΉ ΠΈΠ΄ΡΡ ΠΏΡΠΎΡΠ΅Π΄ΡΡΠ½ΡΠ΅.
ΠΠ°ΠΊ ΡΠΆΠ΅ Π±ΡΠ»ΠΎ ΡΠΊΠ°Π·Π°Π½ΠΎ Π²ΡΡΠ΅, ΠΏΡΠΎΡΠ΅Π΄ΡΡΠ½ΡΠ΅ ΠΌΠ°ΠΊΡΠΎΡΡ ΡΠ°ΠΊ Π½Π°Π·ΡΠ²Π°ΡΡΡΡ, ΠΏΠΎΡΠΎΠΌΡ ΡΡΠΎ Π²ΠΌΠ΅ΡΡΠΎ ΠΏΡΠΎΡΡΠΎΠΉ ΠΏΠΎΠ΄ΡΡΠ°Π½ΠΎΠ²ΠΊΠΈ ΠΎΠ½ΠΈ ΠΌΠΎΠ³ΡΡ Π²Π΅ΡΠ½ΡΡΡ ΡΠΎΠ²Π΅ΡΡΠ΅Π½Π½ΠΎ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ»ΡΠ½ΡΠΉ Π½Π°Π±ΠΎΡ ΡΠΎΠΊΠ΅Π½ΠΎΠ², ΡΠ²Π»ΡΡΡΠΈΠΉΡΡ ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠΎΠΌ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ Π½Π΅ΠΊΠΎΡΠΎΡΠΎΠΉ ΠΏΡΠΎΡΠ΅Π΄ΡΡΡ, Π° ΡΠΎΡΠ½Π΅Π΅ ΡΡΠ½ΠΊΡΠΈΠΈ. ΠΡΡ ΡΡΠ½ΠΊΡΠΈΡ ΠΌΡ ΠΈ Π±ΡΠ΄Π΅ΠΌ ΠΈΠ·ΡΡΠ°ΡΡ.
Π ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΠΏΠΎΠ΄ΠΎΠΏΡΡΠ½ΠΎΠ³ΠΎ ΠΊΡΠΎΠ»ΠΈΠΊΠ° Π²ΠΎΠ·ΡΠΌΠ΅ΠΌ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ Π²ΡΠ²ΠΎΠ΄ΠΈΠΌΠΎΠ³ΠΎ ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΎΡΠ° #[derive(new)] ΠΈΠ· ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠ΅ΠΉ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ.
Π‘ ΡΠΎΡΠΊΠΈ Π·ΡΠ΅Π½ΠΈΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ Π±ΡΠ΄Π΅Ρ Π²ΡΠ³Π»ΡΠ΄Π΅ΡΡ ΡΠ°ΠΊ:
Π’ΠΎ Π΅ΡΡΡ, ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΠ² Π°ΡΡΠΈΠ±ΡΡ #[derive(new)] ΠΌΡ ΠΏΠΎΠΏΡΠΎΡΠΈΠ»ΠΈ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡ ΡΠ°ΠΌΠΎΡΡΠΎΡΡΠ΅Π»ΡΠ½ΠΎ Π²ΡΠ²Π΅ΡΡΠΈβ¦ Π° ΡΡΠΎ ΠΈΠΌΠ΅Π½Π½ΠΎ? ΠΡΠΊΡΠ΄Π° ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡ ΠΏΠΎΠΉΠΌΠ΅Ρ, ΠΊΠ°ΠΊΠΎΠΉ ΠΈΠΌΠ΅Π½Π½ΠΎ ΠΌΠ΅ΡΠΎΠ΄ ΠΌΡ ΠΎΠΆΠΈΠ΄Π°Π΅ΠΌ ΠΏΠΎΠ»ΡΡΠΈΡΡ? ΠΠ°Π²Π°ΠΉΡΠ΅ ΡΠ°Π·Π±ΠΈΡΠ°ΡΡΡΡ.
ΠΠ»Ρ Π½Π°ΡΠ°Π»Π° Π·Π°Π³Π»ΡΠ½Π΅ΠΌ Π² ΠΈΡΡ ΠΎΠ΄Π½ΡΠΉ ΠΊΠΎΠ΄ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ, ΠΊ ΡΡΠ°ΡΡΡΡ ΠΎΠ½ Π½Π΅ ΡΠ°ΠΊΠΎΠΉ Π±ΠΎΠ»ΡΡΠΎΠΉ:
Π ΡΠ΅ΠΏΠ΅ΡΡ ΡΠ°Π·Π±Π΅ΡΠ΅ΠΌ Π΅Π³ΠΎ ΠΏΠΎ ΠΊΠΎΡΡΠΎΡΠΊΠ°ΠΌ ΠΈ ΠΏΠΎΠΏΡΡΠ°Π΅ΠΌΡΡ ΠΏΠΎΠ½ΡΡΡ, ΡΡΠΎ ΠΎΠ½ Π΄Π΅Π»Π°Π΅Ρ.
ΠΠ°Π»Π΅Π΅ ΡΠ»Π΅Π΄ΡΠ΅Ρ ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΠΎ ΡΡΠ½ΠΊΡΠΈΡ, Π²ΡΡΡΡΠΏΠ°ΡΡΠ°Ρ Π² ΡΠΎΠ»ΠΈ ΡΠΎΡΠΊΠΈ Π²Ρ ΠΎΠ΄Π° Π² ΠΏΡΠΎΡΠ΅Π΄ΡΡΠ½ΡΠΉ ΠΌΠ°ΠΊΡΠΎΡ:
ΠΠ° Π²Ρ ΠΎΠ΄ ΠΎΠ½Π° ΠΏΠΎΠ»ΡΡΠ°Π΅Ρ Π½Π°Π±ΠΎΡ ΡΠΎΠΊΠ΅Π½ΠΎΠ² ΠΈΠ· ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡΠ°, ΡΠΎΡΡΠ°Π²Π»ΡΡΡΠΈΡ ΡΠ΅Π»ΠΎ ΠΌΠ°ΠΊΡΠΎΡΠ°. ΠΠ° Π²ΡΡ ΠΎΠ΄Π΅ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡ ΠΎΠΆΠΈΠ΄Π°Π΅Ρ ΠΏΠΎΠ»ΡΡΠΈΡΡ Π΄ΡΡΠ³ΠΎΠΉ Π½Π°Π±ΠΎΡ ΡΠΎΠΊΠ΅Π½ΠΎΠ², ΡΠ²Π»ΡΡΡΠΈΡ ΡΡ ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠΎΠΌ ΠΏΡΠΈΠΌΠ΅Π½Π΅Π½ΠΈΡ ΠΌΠ°ΠΊΡΠΎΡΠ°. Π’Π°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ, ΡΡΠ½ΠΊΡΠΈΡ derive() ΡΠ°Π±ΠΎΡΠ°Π΅Ρ ΠΊΠ°ΠΊ ΡΠ²ΠΎΠ΅ΠΎΠ±ΡΠ°Π·Π½ΡΠΉ ΡΠΈΠ»ΡΡΡ.
ΠΡΠ»ΠΈ ΡΠ΅ΡΡΠ½ΠΎ, Ρ ΡΠΎΠΆΠ΅ Π½Π΅ ΠΏΠΎΠ½ΠΈΠΌΠ°Ρ, Π·Π°ΡΠ΅ΠΌ ΡΠ°ΡΠΎΠ²Π°ΡΡ Π΄Π°Π½Π½ΡΠ΅ ΡΡΠ΄Π°-ΡΡΠ΄Π° ΡΠ΅ΡΠ΅Π· ΡΡΡΠΎΠΊΠΈ ΠΈ ΠΏΠΎΡΠ΅ΠΌΡ Π½Π΅Π»ΡΠ·Ρ Π±ΡΠ»ΠΎ ΡΡΠ°Π·Ρ ΡΠ΄Π΅Π»Π°ΡΡ Π²ΠΌΠ΅Π½ΡΠ΅ΠΌΡΠΉ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ, Π½Ρ Π΄Π° Π»Π°Π΄Π½ΠΎ. ΠΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, Π² Π±ΡΠ΄ΡΡΠ΅ΠΌ ΡΠΈΡΡΠ°ΡΠΈΡ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡΡΡ.
ΠΡΠ°ΠΊ, Π½Π° Π²Ρ ΠΎΠ΄ Π½Π°ΠΌ ΠΌΠΎΠ³ΡΡ ΠΏΠΎΠ΄Π°ΡΡ:
ΠΠ°Π²Π°ΠΉΡΠ΅ ΠΏΠΎΡΠΌΠΎΡΡΠΈΠΌ Π½Π° ΠΊΠΎΠ΄, Π³Π΅Π½Π΅ΡΠΈΡΡΡΡΠΈΠΉ ΠΏΠΎΠ΄ΡΡΠ°Π½ΠΎΠ²ΠΊΡ Π΄Π»Ρ ΠΎΠ±ΡΡΠ½ΠΎΠΉ ΡΡΡΡΠΊΡΡΡΡ. ΠΠ΄Π΅ΡΡ ΠΊΠΎΠ΄ Π΄ΡΠΎΠ±ΠΈΡΡ ΡΠΆΠ΅ Π½Π΅ΡΠ΄ΠΎΠ±Π½ΠΎ, ΠΏΠΎΡΡΠΎΠΌΡ Ρ Π²ΡΡΠ°Π²Π»Ρ ΠΊΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΠΈ ΠΏΡΡΠΌΠΎ Π² ΡΠ΅ΠΊΡΡ:
ΠΡΡ Ρ ΠΈΡΡΠΎΡΡΡ Π·Π΄Π΅ΡΡ Π·Π°ΠΊΠ»ΡΡΠ΅Π½Π° Π² ΠΌΠ°ΠΊΡΠΎΡΠ΅ quote! ΠΊΠΎΡΠΎΡΡΠΉ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΡΠΈΡΠΈΡΠΎΠ²Π°ΡΡ ΡΡΠ°Π³ΠΌΠ΅Π½ΡΡ ΠΊΠΎΠ΄Π°, ΠΏΠΎΠ΄ΡΡΠ°Π²Π»ΡΡ Π²ΠΌΠ΅ΡΡΠΎ ΡΠ΅Π±Ρ Π½Π°Π±ΠΎΡ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠΈΡ ΡΠΎΠΊΠ΅Π½ΠΎΠ². ΠΠ±ΡΠ°ΡΠΈΡΠ΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ Π½Π° ΠΌΠ΅ΡΠ°ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅, Π½Π°ΡΠΈΠ½Π°ΡΡΠΈΠ΅ΡΡ Ρ ΡΠ΅ΡΠ΅ΡΠΊΠΈ. ΠΠ½ΠΈ ΡΠ½Π°ΡΠ»Π΅Π΄ΠΎΠ²Π°Π½Ρ ΠΈΠ· Π»Π΅ΠΊΡΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡΠ°, Π² ΠΊΠΎΡΠΎΡΠΎΠΌ Π½Π°Ρ ΠΎΠ΄ΠΈΡΡΡ ΡΠΈΡΠ°ΡΠ°.
Π‘Π°ΠΌΠ° ΡΡΡΡΠΊΡΡΡΠ° Π΅ΡΠ΅ ΡΠ°Π·:
Π Π΅Π·ΡΠ»ΡΡΠ°Ρ ΠΏΡΠΈΠΌΠ΅Π½Π΅Π½ΠΈΡ ΠΏΡΠΎΡΠ΅Π΄ΡΡΠ½ΠΎΠ³ΠΎ ΠΌΠ°ΠΊΡΠΎΡΠ°:
ΠΠ½Π΅Π·Π°ΠΏΠ½ΠΎ, Π²ΡΠ΅ ΡΡΠ°Π½ΠΎΠ²ΠΈΡΡΡ Π½Π° ΡΠ²ΠΎΠΈ ΠΌΠ΅ΡΡΠ°. ΠΠΊΠ°Π·ΡΠ²Π°Π΅ΡΡΡ, ΠΌΡ ΡΠΎΠ»ΡΠΊΠΎ ΡΡΠΎ ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΠΎΡΡΡΠ½ΠΎ ΡΠ³Π΅Π½Π΅ΡΠΈΡΠΎΠ²Π°Π»ΠΈ impl Π±Π»ΠΎΠΊ Π΄Π»Ρ ΡΡΡΡΠΊΡΡΡΡ, Π΄ΠΎΠ±Π°Π²ΠΈΠ»ΠΈ Π² Π½Π΅Π³ΠΎ Π°ΡΡΠΎΡΠΈΠΈΡΠΎΠ²Π°Π½Π½ΡΡ ΡΡΠ½ΠΊΡΠΈΡ-ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΎΡ new() Ρ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΠ΅ΠΉ (!), Π΄Π²ΡΠΌΡ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠ°ΠΌΠΈ x ΠΈ y ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠΈΡ ΡΠΈΠΏΠΎΠ² ΠΈ Ρ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠ΅ΠΉ, ΠΊΠΎΡΠΎΡΠ°Ρ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ Π½Π°ΡΡ ΡΡΡΡΠΊΡΡΡΡ, ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·ΠΈΡΡΡ Π΅Π΅ ΠΏΠΎΠ»Ρ Π·Π½Π°ΡΠ΅Π½ΠΈΡΠΌΠΈ ΠΈΠ· ΡΠ²ΠΎΠΈΡ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠ².
ΠΠΎΡΠΊΠΎΠ»ΡΠΊΡ Rust ΠΌΠΎΠΆΠ΅Ρ ΠΏΠΎΠ½ΡΡΡ ΠΈΠ· ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡΠ°, ΡΠ΅ΠΌΡ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡ x ΠΈ y Π΄ΠΎ ΠΈ ΠΏΠΎΡΠ»Π΅ Π΄Π²ΠΎΠ΅ΡΠΎΡΠΈΡ, Π²ΡΠ΅ ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡΡΠ΅ΡΡΡ ΡΡΠΏΠ΅ΡΠ½ΠΎ.
Π ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΡΠΏΡΠ°ΠΆΠ½Π΅Π½ΠΈΡ, ΠΎΡΡΠ°Π²ΡΠΈΠ΅ΡΡ Π΄Π²Π΅ Π²Π΅ΡΠ²ΠΈ ΠΏΡΠ΅Π΄Π»Π°Π³Π°Ρ ΡΠ°Π·ΠΎΠ±ΡΠ°ΡΡ ΡΠ°ΠΌΠΎΡΡΠΎΡΡΠ΅Π»ΡΠ½ΠΎ.
ΠΠ°ΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅
ΠΠΎΡΠ΅Π½ΡΠΈΠ°Π» ΠΏΡΠΎΡΠ΅Π΄ΡΡΠ½ΡΡ ΠΌΠ°ΠΊΡΠΎΡΠΎΠ² ΡΠΎΠ»ΡΠΊΠΎ ΠΏΡΠ΅Π΄ΡΡΠΎΠΈΡ Π²ΡΡΠ²ΠΈΡΡ. ΠΠ±ΠΎΠ·Π½Π°ΡΠ΅Π½Π½ΡΠ΅ Π² ΠΏΡΠΎΡΠ»ΠΎΠΉ ΡΡΠ°ΡΡΠ΅ ΠΏΡΠΈΠΌΠ΅ΡΡ β ΡΠΎΠ»ΡΠΊΠΎ Π²Π΅ΡΡΠΈΠ½Π° Π°ΠΉΡΠ±Π΅ΡΠ³Π° ΠΈ ΡΠ°ΠΌΡΠΉ ΠΏΡΡΠΌΠΎΠ»ΠΈΠ½Π΅ΠΉΠ½ΡΠΉ Π²Π°ΡΠΈΠ°Π½Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ. ΠΡΡΡ Π³ΠΎΡΠ°Π·Π΄ΠΎ Π±ΠΎΠ»Π΅Π΅ ΠΈΠ½ΡΠ΅ΡΠ΅ΡΠ½ΡΠ΅ ΠΏΡΠΎΠ΅ΠΊΡΡ, ΠΊΠ°ΠΊ Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ ΠΏΡΠΎΠ΅ΠΊΡ ΡΠ±ΠΎΡΡΠΈΠΊΠ° ΠΌΡΡΠΎΡΠ°, ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ ΡΠ΅Π»ΠΈΠΊΠΎΠΌ Π»Π΅ΠΊΡΠΈΡΠ΅ΡΠΊΠΈΠΌΠΈ ΡΡΠ΅Π΄ΡΡΠ²Π°ΠΌΠΈ ΡΠ·ΡΠΊΠ° Rust.
ΠΠ°Π΄Π΅ΡΡΡ, ΡΡΠΎ ΡΡΠ°ΡΡΡ ΠΎΠΊΠ°Π·Π°Π»Π°ΡΡ Π²Π°ΠΌ ΠΏΠΎΠ»Π΅Π·Π½ΠΎΠΉ. Π Π΅ΡΠ»ΠΈ ΠΏΠΎΡΠ»Π΅ Π΅Π΅ ΠΏΡΠΎΡΡΠ΅Π½ΠΈΡ Π²Ρ Π΅ΡΠ΅ ΠΈ Π·Π°Ρ ΠΎΡΠ΅Π»ΠΈ ΠΏΠΎΠΈΠ³ΡΠ°ΡΡΡΡ Ρ ΡΠ·ΡΠΊΠΎΠΌ Rust, Ρ Π±ΡΠ΄Ρ ΡΡΠΈΡΠ°ΡΡ ΡΠ²ΠΎΡ Π·Π°Π΄Π°ΡΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½Π½ΠΎΠΉ ΠΏΠΎΠ»Π½ΠΎΡΡΡΡ π
ΠΠ°ΡΠ΅ΡΠΈΠ°Π» ΠΏΠΎΠ΄Π³ΠΎΡΠΎΠ²Π»Π΅Π½ ΡΠΎΠ²ΠΌΠ΅ΡΡΠ½ΠΎ Ρ ΠΠ°ΡΡΠ΅ΠΉ Π©Π΅ΡΠΈΠ½ΠΈΠ½ΠΎΠΉ.
ΠΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ ΠΌΠ°ΠΊΡΠΎΡΠΎΠ² (ΠΠ°ΠΊΡΠΎΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΡ)
ΠΠ³ΠΎ Π½Π΅Π»ΡΠ·Ρ ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°ΡΡ Π² Π²ΠΈΠ΄Π΅ ΠΎΠ±ΡΡΠ½ΠΎΠΉ ΡΡΠ½ΠΊΡΠΈΠΈ, ΡΠ°ΠΊ ΠΊΠ°ΠΊ ΠΎΠ½ ΠΏΡΠΈΠ½ΠΈΠΌΠ°Π΅Ρ Π»ΡΠ±ΠΎΠ΅ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠΎΠ². ΠΠΎ ΠΌΡ ΠΌΠΎΠΆΠ΅ΠΌ ΠΏΡΠ΅Π΄ΡΡΠ°Π²ΠΈΡΡ Π΅Π³ΠΎ Π² Π²ΠΈΠ΄Π΅ ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ ΡΠΎΠΊΡΠ°ΡΠ΅Π½ΠΈΡ Π΄Π»Ρ ΡΠ»Π΅Π΄ΡΡΡΠ΅Π³ΠΎ ΠΊΠΎΠ΄Π°
ΠΡ ΠΌΠΎΠΆΠ΅ΠΌ ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°ΡΡ ΡΡΠΎ ΡΠΎΠΊΡΠ°ΡΠ΅Π½ΠΈΠ΅, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ ΠΌΠ°ΠΊΡΠΎΡ: actual
ΠΠ³ΠΎ, ΡΡΡ ΠΌΠ½ΠΎΠ³ΠΎ Π½ΠΎΠ²ΠΎΠ³ΠΎ ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡΠ°! ΠΠ°Π²Π°ΠΉΡΠ΅ ΡΠ°Π·Π±Π΅ΡΠ΅ΠΌ Π΅Π³ΠΎ.
Π‘ΠΎΠΏΠΎΡΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ (Matching) (Π‘ΠΈΠ½ΡΠ°ΠΊΡΠΈΡ Π²ΡΠ·ΠΎΠ²Π° ΠΌΠ°ΠΊΡΠΎΠΊΠΎΠΌΠ°Π½Π΄Ρ)
ΠΠ°ΠΊΡΠΎΡ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅ΡΡΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΡΡΠ΄Π° ΠΏΡΠ°Π²ΠΈΠ», ΠΊΠΎΡΠΎΡΡΠ΅ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΡΡ ΡΠΎΠ±ΠΎΠΉ Π²Π°ΡΠΈΠ°Π½ΡΡ ΡΠΎΠΏΠΎΡΡΠ°Π²Π»Π΅Π½ΠΈΡ Ρ ΠΎΠ±ΡΠ°Π·ΡΠΎΠΌ. ΠΡΡΠ΅ Ρ Π½Π°Ρ Π±ΡΠ»ΠΎ
ΠΠ° ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ΠΌ ΡΠΏΠ΅ΡΠΈΠ°Π»ΡΠ½ΠΎΠ³ΠΎ ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡΠ° ΡΠΎΠΏΠΎΡΡΠ°Π²Π»Π΅Π½ΠΈΡ Ρ ΠΎΠ±ΡΠ°Π·ΡΠΎΠΌ, Π»ΡΠ±ΡΠ΅ Π΄ΡΡΠ³ΠΈΠ΅ ΡΠ»Π΅ΠΌΠ΅Π½ΡΡ Rust, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΏΠΎΡΠ²Π»ΡΡΡΡΡ Π² ΠΎΠ±ΡΠ°Π·ΡΠ΅, Π΄ΠΎΠ»ΠΆΠ½Ρ Π² ΡΠΎΡΠ½ΠΎΡΡΠΈ ΡΠΎΠ²ΠΏΠ°Π΄Π°ΡΡ. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ,
ΠΌΡ ΠΏΠΎΠ»ΡΡΠΈΠΌ ΠΎΡΠΈΠ±ΠΊΡ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΈΠΈ
Π Π°Π·Π²Π΅ΡΡΡΠ²Π°Π½ΠΈΠ΅ (Expansion) (Π‘ΠΈΠ½ΡΠ°ΠΊΡΠΈΡ ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°Π½ΠΈΡ ΠΌΠ°ΠΊΡΠΎΠΊΠΎΠΌΠ°Π½Π΄Ρ)
Π‘ ΠΏΡΠ°Π²ΠΎΠΉ ΡΡΠΎΡΠΎΠ½Ρ ΠΌΠ°ΠΊΡΠΎ ΠΏΡΠ°Π²ΠΈΠ» ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ, ΠΏΠΎ Π±ΠΎΠ»ΡΡΠ΅ΠΉ ΡΠ°ΡΡΠΈ, ΠΎΠ±ΡΡΠ½ΡΠΉ ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡ Rust. ΠΠΎ ΠΌΡ ΠΌΠΎΠΆΠ΅ΠΌ ΡΠΎΠ΅Π΄ΠΈΠ½ΠΈΡΡ ΠΊΡΡΠΎΡΠΊΠΈ ΡΠ°Π·Π΄ΡΠΎΠ±Π»Π΅Π½Π½ΠΎΠ³ΠΎ ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡΠ°, Π·Π°Ρ Π²Π°ΡΠ΅Π½Π½ΡΠ΅ ΠΏΡΠΈ ΡΠΎΠΏΠΎΡΡΠ°Π²Π»Π΅Π½ΠΈΠΈ Ρ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΡΠΎΠΌ. ΠΠ· ΠΏΡΠ΅Π΄ΡΠ΄ΡΡΠ΅Π³ΠΎ ΠΏΡΠΈΠΌΠ΅ΡΠ°:
ΠΡΠ΅ ΠΎΠ΄Π½Π° Π΄Π΅ΡΠ°Π»Ρ: ΠΌΠ°ΠΊΡΠΎΡ vec! ΠΈΠΌΠ΅Π΅Ρ Π΄Π²Π΅ ΠΏΠ°ΡΡ ΡΠΈΠ³ΡΡΠ½ΡΡ ΡΠΊΠΎΠ±ΠΊΠ°Ρ ΠΏΡΠ°Π²ΠΎΠΉ ΡΠ°ΡΡΠΈ. ΠΠ½ΠΈ ΡΠ°ΡΡΠΎ ΡΠΎΡΠ΅ΡΠ°ΡΡΡΡ ΡΠ°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ:
ΠΠ½ΡΡΡΠ΅Π½Π½ΠΈΠ΅ ΡΠΊΠΎΠ±ΠΊΠΈ ΡΠ²Π»ΡΡΡΡΡ ΡΠ°ΡΡΡΡ ΡΠ°ΡΡΠΈΡΠ΅Π½Π½ΠΎΠ³ΠΎ ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡΠ°. ΠΠΎΠΌΠ½ΠΈΡΠ΅, ΡΡΠΎ ΠΌΠ°ΠΊΡΠΎΡ vec! ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Π² ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡΠ΅ Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΡ. ΠΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌ Π±Π»ΠΎΠΊ, Π΄Π»Ρ Π·Π°ΠΏΠΈΡΠΈ Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΡ Ρ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²Π΅Π½Π½ΡΠΌΠΈ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΠ°ΠΌΠΈ, Π² ΡΠΎΠΌ ΡΠΈΡΠ»Π΅ Π²ΠΊΠ»ΡΡΠ°ΡΡΠ΅Π΅ let ΠΏΡΠΈΠ²ΡΠ·ΠΊΠΈ. ΠΡΠ»ΠΈ Π²Π°Ρ ΠΌΠ°ΠΊΡΠΎΡ ΡΠ°ΡΠΊΡΡΠ²Π°Π΅ΡΡΡ Π² ΠΎΠ΄Π½ΠΎ Π΅Π΄ΠΈΠ½ΡΡΠ²Π΅Π½Π½ΠΎΠ΅ Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΠ΅, ΡΠΎ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΠΎΠΉ ΡΠ»ΠΎΠΉ ΡΠΊΠΎΠ±ΠΎΠΊ Π½Π΅ Π½ΡΠΆΠ΅Π½.
ΠΠ±ΡΠ°ΡΠΈΡΠ΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, ΡΡΠΎ ΠΌΡ Π½ΠΈΠΊΠΎΠ³Π΄Π° Π½Π΅ Π³ΠΎΠ²ΠΎΡΠΈΠ»ΠΈ, ΡΡΠΎ ΠΌΠ°ΠΊΡΠΎΡ ΡΠΎΠ·Π΄Π°Π΅Ρ Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΡ. ΠΠ° ΡΠ°ΠΌΠΎΠΌ Π΄Π΅Π»Π΅, ΡΡΠΎ Π½Π΅ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅ΡΡΡ, ΠΏΠΎΠΊΠ° ΠΌΡ Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌ ΠΌΠ°ΠΊΡΠΎΡ Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΡ. ΠΡΠ»ΠΈ ΡΠΎΠ±Π»ΡΠ΄Π°ΡΡ ΠΎΡΡΠΎΡΠΎΠΆΠ½ΠΎΡΡΡ, ΡΠΎ ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΏΠΈΡΠ°ΡΡ ΠΌΠ°ΠΊΡΠΎΡ, ΡΠ°Π·Π²Π΅ΡΠ½ΡΡΠ°Ρ ΡΠΎΡΠΌΠ° ΠΊΠΎΡΠΎΡΠΎΠ³ΠΎ Π±ΡΠ΄Π΅Ρ Π²Π°Π»ΠΈΠ΄Π½Π° ΡΡΠ°Π·Ρ Π² Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΡ ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡΠ°Ρ . ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, ΡΠΎΠΊΡΠ°ΡΠ΅Π½Π½Π°Ρ ΡΠΎΡΠΌΠ° Π΄Π»Ρ ΡΠΈΠΏΠ° Π΄Π°Π½Π½ΡΡ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ Π²Π°Π»ΠΈΠ΄Π½ΠΎΠΉ ΠΈ ΠΊΠ°ΠΊ Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΠ΅, ΠΈ ΠΊΠ°ΠΊ ΡΠ°Π±Π»ΠΎΠ½.
ΠΠΎΠ²ΡΠΎΡΠ΅Π½ΠΈΠ΅ (Repetition) (ΠΠ½ΠΎΠ³ΠΎΠ²Π°ΡΠΈΠ°Π½ΡΠ½ΠΎΡΡΡ)
ΠΠΏΠ΅ΡΠ°ΡΠΈΠΈ ΠΏΠΎΠ²ΡΠΎΡΠ° Π²ΡΠ΅Π³Π΄Π° ΡΠΎΠΏΡΡΡΡΠ²ΡΡΡ Π΄Π²Π° ΠΎΡΠ½ΠΎΠ²Π½ΡΡ ΠΏΡΠ°Π²ΠΈΠ»Π°:
ΠΡΠΎΡ ΠΏΡΠΈΡΡΠ΄Π»ΠΈΠ²ΡΠΉ ΠΌΠ°ΠΊΡΠΎΡ ΠΈΠ»Π»ΡΡΡΡΠΈΡΡΠ΅Ρ Π΄ΡΠ±Π»ΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ ΠΈΠ· Π²Π½Π΅ΡΠ½ΠΈΡ ΡΡΠΎΠ²Π½Π΅ΠΉ ΠΏΠΎΠ²ΡΠΎΡΠ΅Π½ΠΈΡ.
ΠΡΠ° ΡΠΈΡΡΠ΅ΠΌΠ° ΠΏΠΎΠ²ΡΠΎΡΠ΅Π½ΠΈΠΉ ΠΎΡΠ½ΠΎΠ²Π°Π½Π° Π½Π° Β«Macro-by-ExampleΒ» (PDF ΡΡΡΠ»ΠΊΠ°).
ΠΠΈΠ³ΠΈΠ΅Π½Π° (Hygiene)
ΠΡΡΠ³ΠΎΠΉ ΡΠ°ΡΠΏΡΠΎΡΡΡΠ°Π½Π΅Π½Π½ΠΎΠΉ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠΎΠΉ Π² ΡΠΈΡΡΠ΅ΠΌΠ΅ ΠΌΠ°ΠΊΡΠΎΡΠΎΠ² ΡΠ²Π»ΡΠ΅ΡΡΡ Π·Π°Ρ Π²Π°Ρ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ (variable capture). ΠΠΎΡ C ΠΌΠ°ΠΊΡΠΎΡ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΠΈΠΉ GNU C ΡΠ°ΡΡΠΈΡΠ΅Π½ΠΈΠ΅, ΠΊΠΎΡΠΎΡΡΠΉ ΡΠΌΡΠ»ΠΈΡΡΠ΅Ρ Π±Π»ΠΎΠΊΠΈ Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΠΈΠΉ Π² Rust.
ΠΠΎΡ ΠΏΡΠΎΡΡΠΎΠΉ ΡΠ»ΡΡΠ°ΠΉ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ, ΠΏΡΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ ΠΊΠΎΡΠΎΡΠΎΠ³ΠΎ ΠΌΠΎΠΆΠ΅Ρ ΠΏΠ»ΠΎΡ ΠΎ ΠΊΠΎΠ½ΡΠΈΡΡΡΡ:
ΠΡΠΎΡΠ°Ρ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½Π°Ρ Ρ ΠΈΠΌΠ΅Π½Π΅ΠΌ state Π·Π°ΡΠ΅Π½ΡΠ΅Ρ ΠΏΠ΅ΡΠ²ΡΡ. ΠΡΠΎ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ°, ΠΏΠΎΡΠΎΠΌΡ ΡΡΠΎ ΠΊΠΎΠΌΠ°Π½Π΄Π΅ ΠΏΠ΅ΡΠ°ΡΠΈ ΡΡΠ΅Π±ΡΠ΅ΡΡΡ ΠΎΠ±ΡΠ°ΡΠ°ΡΡΡΡ ΠΊ Π½ΠΈΠΌ ΠΎΠ±ΠΎΠΈΠΌ.
ΠΠΊΠ²ΠΈΠ²Π°Π»Π΅Π½ΡΠ½ΡΠΉ ΠΌΠ°ΠΊΡΠΎΡ Π² Rust ΠΎΠ±Π»Π°Π΄Π°Π΅Ρ ΡΡΠ΅Π±ΡΠ΅ΠΌΡΠΌ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ΠΌ.
ΠΡΠΎ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ, ΠΏΠΎΡΠΎΠΌΡ ΡΡΠΎ Rust ΠΈΠΌΠ΅Π΅Ρ ΡΠΈΡΡΠ΅ΠΌΡ ΠΌΠ°ΠΊΡΠΎΡΠΎΠ² Ρ ΡΠΎΠ±Π»ΡΠ΄Π΅Π½ΠΈΠ΅ΠΌ Π³ΠΈΠ³ΠΈΠ΅Π½Ρ. Π Π°ΡΠΊΡΡΡΠΈΠ΅ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΌΠ°ΠΊΡΠΎΡΠ° ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΠΈΡ Π² ΠΎΡΠ΄Π΅Π»ΡΠ½ΠΎΠΌ ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡΠ΅ ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡΠ°, ΠΈ ΠΊΠ°ΠΆΠ΄Π°Ρ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½Π°Ρ ΠΎΠ±Π»Π°Π΄Π°Π΅Ρ ΠΌΠ΅ΡΠΊΠΎΠΉ ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡΠ° ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡΠ°, Π³Π΄Π΅ ΠΎΠ½Π° Π±ΡΠ»Π° Π²Π²Π΅Π΄Π΅Π½Π°. ΠΡΠΎ ΠΊΠ°ΠΊ Π΅ΡΠ»ΠΈ Π±Ρ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½Π°Ρ state Π²Π½ΡΡΡΠΈ main Π±ΡΠ»Π° Π±Ρ ΠΎΠΊΡΠ°ΡΠ΅Π½Π° Π² Π΄ΡΡΠ³ΠΎΠΉ Β«ΡΠ²Π΅ΡΒ» Π² ΠΎΡΠ»ΠΈΡΠ°Π΅ ΠΎΡ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ state Π²Π½ΡΡΡΠΈ ΠΌΠ°ΠΊΡΠΎΡΠ°, ΠΈΠ·-Π·Π° ΡΠ΅Π³ΠΎ ΠΎΠ½ΠΈ Π±Ρ Π½Π΅ ΠΊΠΎΠ½ΡΠ»ΠΈΠΊΡΠΎΠ²Π°Π»ΠΈ.
ΠΡΠΎ ΡΠ°ΠΊΠΆΠ΅ ΠΎΠ³ΡΠ°Π½ΠΈΡΠΈΠ²Π°Π΅Ρ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ ΠΌΠ°ΠΊΡΠΎΡΠΎΠ² Π΄Π»Ρ Π²Π½Π΅Π΄ΡΠ΅Π½ΠΈΡ Π½ΠΎΠ²ΡΡ ΡΠ²ΡΠ·ΡΠ²Π°Π½ΠΈΠΉ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ Π½Π° ΠΌΠ΅ΡΡΠ΅ Π²ΡΠ·ΠΎΠ²Π°. ΠΠΎΠ΄, ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½Π½ΡΠΉ Π½ΠΈΠΆΠ΅, Π½Π΅ Π±ΡΠ΄Π΅Ρ ΡΠ°Π±ΠΎΡΠ°ΡΡ:
ΠΠΌΠ΅ΡΡΠΎ ΡΡΠΎΠ³ΠΎ Π²Ρ Π΄ΠΎΠ»ΠΆΠ½Ρ ΠΏΠ΅ΡΠ΅Π΄Π°Π²Π°ΡΡ ΠΈΠΌΡ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ ΠΏΡΠΈ Π²ΡΠ·ΠΎΠ²Π΅, ΡΠΎΠ³Π΄Π° ΠΎΠ½Π° Π±ΡΠ΄Π΅Ρ ΠΎΠ±Π»Π°Π΄Π°ΡΡ ΠΌΠ΅ΡΠΊΠΎΠΉ ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΠΎΠ³ΠΎ ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡΠ° ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡΠ°.
ΠΡΠΎ ΡΠΏΡΠ°Π²Π΅Π΄Π»ΠΈΠ²ΠΎ Π΄Π»Ρ let ΠΏΡΠΈΠ²ΡΠ·ΠΎΠΊ ΠΈ ΠΌΠ΅ΡΠΎΠΊ loop, Π½ΠΎ Π½Π΅ Π΄Π»Ρ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ². ΠΠΎΠ΄, ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½Π½ΡΠΉ Π½ΠΈΠΆΠ΅, ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡΡΠ΅ΡΡΡ:
Π Π΅ΠΊΡΡΡΠΈΡ ΠΌΠ°ΠΊΡΠΎΡΠΎΠ²
Π Π°ΡΠΊΡΡΡΠΈΠ΅ ΠΌΠ°ΠΊΡΠΎΡΠ° ΡΠ°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅Ρ Π²ΠΊΠ»ΡΡΠ°ΡΡ Π² ΡΠ΅Π±Ρ Π²ΡΠ·ΠΎΠ²Ρ ΠΌΠ°ΠΊΡΠΎΡΠΎΠ², Π² ΡΠΎΠΌ ΡΠΈΡΠ»Π΅ Π²ΡΠ·ΠΎΠ²Ρ ΡΠΎΠ³ΠΎ ΠΌΠ°ΠΊΡΠΎΡΠ°, ΠΊΠΎΡΠΎΡΡΠΉ ΡΠ°ΡΠΊΡΡΠ²Π°Π΅ΡΡΡ. ΠΡΠΈ ΡΠ΅ΠΊΡΡΡΠΈΠ²Π½ΡΠ΅ ΠΌΠ°ΠΊΡΠΎΡΡ ΠΌΠΎΠ³ΡΡ Π±ΡΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½Ρ Π΄Π»Ρ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠΈ Π΄ΡΠ΅Π²ΠΎΠ²ΠΈΠ΄Π½ΠΎΠ³ΠΎ Π²Π²ΠΎΠ΄Π°, ΠΊΠ°ΠΊ ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ Π½Π° ΡΡΠΎΠΌ (ΡΠΏΡΠΎΡΠ΅Π½Π½ΠΎΠΌ) HTML ΡΠΎΠΊΡΠ°ΡΠ΅Π½ΠΈΠ΅:
ΠΡΠ»Π°Π΄ΠΊΠ° ΠΌΠ°ΠΊΡΠΎΡΠΎΠ²
log_syntax!(. ) Π±ΡΠ΄Π΅Ρ ΠΏΠ΅ΡΠ°ΡΠ°ΡΡ ΡΠ²ΠΎΠΈ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΡ Π² ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΡΠΉ Π²ΡΠ²ΠΎΠ΄ Π²ΠΎ Π²ΡΠ΅ΠΌΡ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΈΠΈ, ΠΈ Β«ΡΠ°Π·Π²Π΅ΡΡΡΠ²Π°ΡΡΡΡΒ» Π² Π½ΠΈΡΡΠΎ.
trace_macros!(true) Π±ΡΠ΄Π΅Ρ Π²ΡΠ΄Π°Π²Π°ΡΡ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡΠ° ΠΊΠ°ΠΆΠ΄ΡΠΉ ΡΠ°Π·, ΠΊΠΎΠ³Π΄Π° ΠΌΠ°ΠΊΡΠΎΡ ΡΠ°Π·Π²Π΅ΡΡΡΠ²Π°Π΅ΡΡΡ. ΠΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅ trace_macros!(false) Π² ΠΊΠΎΠ½ΡΠ΅ ΡΠ°Π·Π²Π΅ΡΡΡΠ²Π°Π½ΠΈΡ, ΡΡΠΎΠ±Ρ Π²ΡΠΊΠ»ΡΡΠΈΡΡ Π΅Π³ΠΎ.
Π’ΡΠ΅Π±ΠΎΠ²Π°Π½ΠΈΡ ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡΠ°
ΠΠΎΠ΄ Π½Π° Rust ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΡΠ°Π·ΠΎΠ±ΡΠ°Π½ Π² ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΎΠ΅ Π΄Π΅ΡΠ΅Π²ΠΎ, Π΄Π°ΠΆΠ΅ ΠΊΠΎΠ³Π΄Π° ΠΎΠ½ ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ Π½Π΅ΡΠ°Π·Π²ΡΡΠ½ΡΡΡΠ΅ ΠΌΠ°ΠΊΡΠΎΡΡ. ΠΡΠΎ ΡΠ²ΠΎΠΉΡΡΠ²ΠΎ ΠΎΡΠ΅Π½Ρ ΠΏΠΎΠ»Π΅Π·Π½ΠΎ Π΄Π»Ρ ΡΠ΅Π΄Π°ΠΊΡΠΎΡΠΎΠ² ΠΈ Π΄ΡΡΠ³ΠΈΡ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠΎΠ², ΠΎΠ±ΡΠ°Π±Π°ΡΡΠ²Π°ΡΡΠΈΡ ΠΈΡΡ ΠΎΠ΄Π½ΡΠΉ ΠΊΠΎΠ΄. ΠΠ½ΠΎ ΡΠ°ΠΊΠΆΠ΅ Π²Π»ΠΈΡΠ΅Ρ Π½Π° Π²ΠΈΠ΄ ΡΠΈΡΡΠ΅ΠΌΡ ΠΌΠ°ΠΊΡΠΎΡΠΎΠ² Rust.
ΠΠ°ΠΊ ΡΠ»Π΅Π΄ΡΡΠ²ΠΈΠ΅, ΠΊΠΎΠ³Π΄Π° ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡ ΡΠ°Π·Π±ΠΈΡΠ°Π΅Ρ Π²ΡΠ·ΠΎΠ² ΠΌΠ°ΠΊΡΠΎΡΠ°, Π΅ΠΌΡ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ Π·Π½Π°ΡΡ, Π²ΠΎ ΡΡΠΎ ΡΠ°Π·Π²Π΅ΡΠ½ΡΡΡΡ Π΄Π°Π½Π½ΡΠΉ ΠΌΠ°ΠΊΡΠΎΡ. ΠΠ°ΠΊΡΠΎΡ ΠΌΠΎΠΆΠ΅Ρ ΡΠ°Π·Π²ΠΎΡΠ°ΡΠΈΠ²Π°ΡΡΡΡ Π² ΡΠ»Π΅Π΄ΡΡΡΠ΅Π΅:
ΠΡΠ·ΠΎΠ² ΠΌΠ°ΠΊΡΠΎΡΠ° Π² Π±Π»ΠΎΠΊΠ΅ ΠΌΠΎΠΆΠ΅Ρ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΡΡ ΡΠΎΠ±ΠΎΠΉ ΡΠ»Π΅ΠΌΠ΅Π½ΡΡ, Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΠ΅, ΠΈΠ»ΠΈ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡ. Rust ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅Ρ ΠΏΡΠΎΡΡΠΎΠ΅ ΠΏΡΠ°Π²ΠΈΠ»ΠΎ Π΄Π»Ρ ΡΠ°Π·ΡΠ΅ΡΠ΅Π½ΠΈΡ ΡΡΠΎΠΉ Π½Π΅ΠΎΠ΄Π½ΠΎΠ·Π½Π°ΡΠ½ΠΎΡΡΠΈ. ΠΡΠ·ΠΎΠ² ΠΌΠ°ΠΊΡΠΎΡΠ°, ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΡΡΠ΅Π³ΠΎ ΡΠ»Π΅ΠΌΠ΅Π½ΡΡ, Π΄ΠΎΠ»ΠΆΠ΅Π½ Π»ΠΈΠ±ΠΎ
ΠΡΡΠ³ΠΎΠ΅ ΡΠ»Π΅Π΄ΡΡΠ²ΠΈΠ΅ ΡΠ°Π·Π±ΠΎΡΠ° ΠΏΠ΅ΡΠ΅Π΄ ΡΠ°ΡΠΊΡΡΡΠΈΠ΅ΠΌ ΠΌΠ°ΠΊΡΠΎΡΠΎΠ² β ΡΡΠΎ ΡΠΎ, ΡΡΠΎ Π²ΡΠ·ΠΎΠ² ΠΌΠ°ΠΊΡΠΎΡΠ° Π΄ΠΎΠ»ΠΆΠ΅Π½ ΡΠΎΡΡΠΎΡΡΡ ΠΈΠ· Π΄ΠΎΠΏΡΡΡΠΈΠΌΡΡ Π»Π΅ΠΊΡΠ΅ΠΌ. ΠΠΎΠ»Π΅Π΅ ΡΠΎΠ³ΠΎ, ΡΠΊΠΎΠ±ΠΊΠΈ Π²ΡΠ΅Ρ Π²ΠΈΠ΄ΠΎΠ² Π΄ΠΎΠ»ΠΆΠ½Ρ Π±ΡΡΡ ΡΠ±Π°Π»Π°Π½ΡΠΈΡΠΎΠ²Π°Π½Ρ Π² ΠΌΠ΅ΡΡΠ΅ Π²ΡΠ·ΠΎΠ²Π°. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, foo!([) Π½Π΅ ΡΠ²Π»ΡΠ΅ΡΡΡ ΡΠ°Π·ΡΠ΅ΡΡΠ½Π½ΡΠΌ ΠΊΠΎΠ΄ΠΎΠΌ. Π’Π°ΠΊΠΎΠ΅ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡΡ ΠΏΠΎΠ½ΠΈΠΌΠ°ΡΡ Π³Π΄Π΅ Π·Π°ΠΊΠ°Π½ΡΠΈΠ²Π°Π΅ΡΡΡ Π²ΡΠ·ΠΎΠ² ΠΌΠ°ΠΊΡΠΎΡΠ°.
ΠΠΎΠ²ΠΎΡΡ Π±ΠΎΠ»Π΅Π΅ ΡΠΎΡΠΌΠ°Π»ΡΠ½ΠΎ, ΡΠ΅Π»ΠΎ Π²ΡΠ·ΠΎΠ²Π° ΠΌΠ°ΠΊΡΠΎΡΠ° Π΄ΠΎΠ»ΠΆΠ½ΠΎ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΡΡ ΡΠΎΠ±ΠΎΠΉ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎΡΡΡ Π΄Π΅ΡΠ΅Π²ΡΠ΅Π² Π»Π΅ΠΊΡΠ΅ΠΌ. ΠΠ΅ΡΠ΅Π²ΠΎ Π»Π΅ΠΊΡΠ΅ΠΌ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅ΡΡΡ ΡΠ΅ΠΊΡΡΡΠΈΠ²Π½ΠΎ ΠΈ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΠ΅Ρ ΡΠΎΠ±ΠΎΠΉ Π»ΠΈΠ±ΠΎ:
ΠΠ½ΡΡΡΠΈ ΡΠΎΠΏΠΎΡΡΠ°Π²Π»Π΅Π½ΠΈΡ ΠΊΠ°ΠΆΠ΄Π°Ρ ΠΌΠ΅ΡΠ°ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½Π°Ρ ΠΈΠΌΠ΅Π΅Ρ ΡΠΊΠ°Π·Π°ΡΠ΅Π»Ρ ΡΡΠ°Π³ΠΌΠ΅Π½ΡΠ°, ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΡΡΠΈΠΉ ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΡΡ ΡΠΎΡΠΌΡ, Ρ ΠΊΠΎΡΠΎΡΠΎΠΉ ΠΎΠ½Π° ΡΠΎΠ²ΠΏΠ°Π΄Π°Π΅Ρ. ΠΠΎΡ ΡΠΏΠΈΡΠΎΠΊ ΡΡΠΈΡ ΡΠΊΠ°Π·Π°ΡΠ΅Π»Π΅ΠΉ:
ΠΡΡΡ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΠ΅ ΠΏΡΠ°Π²ΠΈΠ»Π° ΠΎΡΠ½ΠΎΡΠΈΡΠ΅Π»ΡΠ½ΠΎ Π»Π΅ΠΊΡΠ΅ΠΌ, ΡΠ»Π΅Π΄ΡΡΡΠΈΡ Π·Π° ΠΌΠ΅ΡΠ°ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ:
ΠΡΠΈΠ²Π΅Π΄ΡΠ½Π½ΡΠ΅ ΠΏΡΠ°Π²ΠΈΠ»Π° ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠΈΠ²Π°ΡΡ ΡΠ°Π·Π²ΠΈΡΠΈΠ΅ ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡΠ° Rust Π±Π΅Π· Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎΡΡΠΈ ΠΌΠ΅Π½ΡΡΡ ΡΡΡΠ΅ΡΡΠ²ΡΡΡΠΈΠ΅ ΠΌΠ°ΠΊΡΠΎΡΡ.
ΠΠ±Π»Π°ΡΡΠΈ Π²ΠΈΠ΄ΠΈΠΌΠΎΡΡΠΈ, ΠΈΠΌΠΏΠΎΡΡ ΠΈ ΡΠΊΡΠΏΠΎΡΡ ΠΌΠ°ΠΊΡΠΎΡΠΎΠ²
ΠΠ°ΠΊΡΠΎΡΡ ΡΠ°Π·Π²ΠΎΡΠ°ΡΠΈΠ²Π°ΡΡΡΡ Π½Π° ΡΠ°Π½Π½Π΅ΠΉ ΡΡΠ°Π΄ΠΈΠΈ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΈΠΈ, ΠΏΠ΅ΡΠ΅Π΄ ΡΠ°Π·ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ΠΌ ΠΈΠΌΡΠ½. ΠΠ΄ΠΈΠ½ ΠΈΠ· Π½Π΅Π΄ΠΎΡΡΠ°ΡΠΊΠΎΠ² ΡΠ°ΠΊΠΎΠ³ΠΎ ΠΏΠΎΠ΄Ρ ΠΎΠ΄Π° Π² ΡΠΎΠΌ, ΡΡΠΎ ΠΏΡΠ°Π²ΠΈΠ»Π° Π²ΠΈΠ΄ΠΈΠΌΠΎΡΡΠΈ Π΄Π»Ρ ΠΌΠ°ΠΊΡΠΎΡΠΎΠ² ΠΎΡΠ»ΠΈΡΠ½Ρ ΠΎΡ ΠΏΡΠ°Π²ΠΈΠ» Π΄Π»Ρ Π΄ΡΡΠ³ΠΈΡ ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΈΠΉ ΡΠ·ΡΠΊΠ°.
ΠΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅Ρ ΠΈ ΡΠ°Π·Π²ΠΎΡΠ°ΡΠΈΠ²Π°Π΅Ρ ΠΌΠ°ΠΊΡΠΎΡΡ ΠΏΡΠΈ ΠΎΠ±Ρ ΠΎΠ΄Π΅ Π³ΡΠ°ΡΠ° ΠΈΡΡ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π° ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠ° Π² Π³Π»ΡΠ±ΠΈΠ½Ρ. ΠΡΠΈ ΡΡΠΎΠΌ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΡ ΠΌΠ°ΠΊΡΠΎΡΠΎΠ² Π²ΠΊΠ»ΡΡΠ°ΡΡΡΡ Π² Π³ΡΠ°Ρ Π² ΠΏΠΎΡΡΠ΄ΠΊΠ΅ ΠΈΡ Π²ΡΡΡΠ΅ΡΠΈ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡΠΎΠΌ. ΠΠΎΡΡΠΎΠΌΡ ΠΌΠ°ΠΊΡΠΎΡ, ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ½Π½ΡΠΉ Π½Π° ΡΡΠΎΠ²Π½Π΅ ΠΌΠΎΠ΄ΡΠ»Ρ, Π²ΠΈΠ΄Π΅Π½ Π²ΠΎ Π²ΡΡΠΌ ΠΏΠΎΡΠ»Π΅Π΄ΡΡΡΠ΅ΠΌ ΠΊΠΎΠ΄Π΅ ΠΌΠΎΠ΄ΡΠ»Ρ, Π²ΠΊΠ»ΡΡΠ°Ρ ΡΠ΅Π»Π° Π²ΡΠ΅Ρ Π²Π»ΠΎΠΆΠ΅Π½Π½ΡΡ ΠΌΠΎΠ΄ΡΠ»Π΅ΠΉ ( mod ).
ΠΠ°ΠΊΡΠΎΡ, ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ½Π½ΡΠΉ Π² ΡΠ΅Π»Π΅ ΡΡΠ½ΠΊΡΠΈΠΈ, ΠΈΠ»ΠΈ Π³Π΄Π΅-ΡΠΎ Π΅ΡΡ Π½Π΅ Π½Π° ΡΡΠΎΠ²Π½Π΅ ΠΌΠΎΠ΄ΡΠ»Ρ, Π²ΠΈΠ΄Π΅Π½ ΡΠΎΠ»ΡΠΊΠΎ Π²Π½ΡΡΡΠΈ ΡΡΠΎΠ³ΠΎ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ° (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, Π²Π½ΡΡΡΠΈ ΠΎΠ΄Π½ΠΎΠΉ ΡΡΠ½ΠΊΡΠΈΠΈ).
ΠΡΠ»ΠΈ ΠΌΠ°ΠΊΡΠΎΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Π² Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΡ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠ°Ρ , Π²ΡΡ ΡΡΠ°Π½ΠΎΠ²ΠΈΡΡΡ Π΅ΡΡ ΡΠ»ΠΎΠΆΠ½Π΅Π΅. ΠΠΎΠΏΡΡΡΠΈΠΌ, mylib ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅Ρ
ΠΠΎ ΡΡΠΌΠ΅ Π³Π»ΡΠ±ΠΈΠ½
ΠΠ²ΠΎΠ΄Π½Π°Ρ Π³Π»Π°Π²Π° ΡΠΏΠΎΠΌΠΈΠ½Π°Π»Π° ΡΠ΅ΠΊΡΡΡΠΈΠ²Π½ΡΠ΅ ΠΌΠ°ΠΊΡΠΎΡΡ, Π½ΠΎ ΠΎΠ½Π° Π½Π΅ ΡΠ°ΡΡΠΊΠ°Π·ΡΠ²Π°Π»Π° Π²ΡΠ΅ΠΉ ΠΈΡΡΠΎΡΠΈΠΈ. Π Π΅ΠΊΡΡΡΠΈΠ²Π½ΡΠ΅ ΠΌΠ°ΠΊΡΠΎΡΡ ΠΏΠΎΠ»Π΅Π·Π½Ρ Π΅ΡΡ ΠΏΠΎ ΠΎΠ΄Π½ΠΎΠΉ ΠΏΡΠΈΡΠΈΠ½Π΅: ΠΊΠ°ΠΆΠ΄ΡΠΉ ΡΠ΅ΠΊΡΡΡΠΈΠ²Π½ΡΠΉ Π²ΡΠ·ΠΎΠ² Π΄Π°ΡΡ Π½Π°ΠΌ Π΅ΡΡ ΠΎΠ΄Π½Ρ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΡΠΎΠΏΠΎΡΡΠ°Π²ΠΈΡΡ Ρ ΠΎΠ±ΡΠ°Π·ΡΠΎΠΌ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΡ ΠΌΠ°ΠΊΡΠΎΡΠ°.
ΠΡΠΈΠ²Π΅Π΄ΡΠΌ ΡΠ°ΠΊΠΎΠΉ ΡΠ°Π΄ΠΈΠΊΠ°Π»ΡΠ½ΡΠΉ ΠΏΡΠΈΠΌΠ΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ Π΄Π°Π½Π½ΠΎΠΉ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ. Π‘ ΠΏΠΎΠΌΠΎΡΡΡ ΡΠ΅ΠΊΡΡΡΠΈΠ²Π½ΡΡ ΠΌΠ°ΠΊΡΠΎΡΠΎΠ² ΠΌΠΎΠΆΠ½ΠΎ ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°ΡΡ ΠΊΠΎΠ½Π΅ΡΠ½ΡΠΉ Π°Π²ΡΠΎΠΌΠ°Ρ ΡΠΈΠΏΠ° Bitwise Cyclic Tag. Π‘ΡΠΎΠΈΡ Π·Π°ΠΌΠ΅ΡΠΈΡΡ, ΡΡΠΎ ΠΌΡ Π½Π΅ ΡΠ΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡΠ΅ΠΌ ΡΠ°ΠΊΠΎΠΉ ΠΏΠΎΠ΄Ρ ΠΎΠ΄, Π° ΠΏΡΠΎΡΡΠΎ ΠΈΠ»Π»ΡΡΡΡΠΈΡΡΠ΅ΠΌ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ ΠΌΠ°ΠΊΡΠΎΡΠΎΠ².
Π ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΡΠΏΡΠ°ΠΆΠ½Π΅Π½ΠΈΡ ΠΏΡΠ΅Π΄Π»Π°Π³Π°Π΅ΠΌ ΡΠΈΡΠ°ΡΠ΅Π»Ρ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΡΡ Π΅ΡΡ ΠΎΠ΄ΠΈΠ½ ΠΌΠ°ΠΊΡΠΎΡ, ΡΡΠΎΠ±Ρ ΡΠΌΠ΅Π½ΡΡΠΈΡΡ ΡΡΠ΅ΠΏΠ΅Π½Ρ Π΄ΡΠ±Π»ΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΊΠΎΠ΄Π° Π² ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠΈ Π²ΡΡΠ΅.
Π Π°ΡΠΏΡΠΎΡΡΡΠ°Π½ΡΠ½Π½ΡΠ΅ ΠΌΠ°ΠΊΡΠΎΡΡ
ΠΠΎΡ Π½Π΅ΠΊΠΎΡΠΎΡΡΠ΅ ΡΠ°ΡΠΏΡΠΎΡΡΡΠ°Π½ΡΠ½Π½ΡΠ΅ ΠΌΠ°ΠΊΡΠΎΡΡ, ΠΊΠΎΡΠΎΡΡΠ΅ Π²Ρ ΡΠ²ΠΈΠ΄ΠΈΡΠ΅ Π² ΠΊΠΎΠ΄Π΅ Π½Π° Rust.
panic!
ΠΡΠΎΡ ΠΌΠ°ΠΊΡΠΎΡ Π²ΡΠ·ΡΠ²Π°Π΅Ρ ΠΏΠ°Π½ΠΈΠΊΡ ΡΠ΅ΠΊΡΡΠ΅Π³ΠΎ ΠΏΠΎΡΠΎΠΊΠ°. ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΡΠΊΠ°Π·Π°ΡΡ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅, Ρ ΠΊΠΎΡΠΎΡΡΠΌ ΠΏΠΎΡΠΎΠΊ Π·Π°Π²Π΅ΡΡΠΈΡΡΡ:
ΠΠ°ΠΊΡΠΎΡ vec! ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ ΠΏΠΎ Π²ΡΠ΅ΠΉ ΠΊΠ½ΠΈΠ³Π΅, ΠΏΠΎΡΡΠΎΠΌΡ Π²Ρ Π½Π°Π²Π΅ΡΠ½ΡΠΊΠ° ΡΠΆΠ΅ Π²ΠΈΠ΄Π΅Π»ΠΈ Π΅Π³ΠΎ. ΠΠ½ ΡΠΏΡΠΎΡΠ°Π΅Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΠ΅ Vec :
ΠΠ½ ΡΠ°ΠΊΠΆΠ΅ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ Π²Π°ΠΌ ΡΠΎΠ·Π΄Π°Π²Π°ΡΡ Π²Π΅ΠΊΡΠΎΡΡ Ρ ΠΏΠΎΠ²ΡΠΎΡΡΡΡΠΈΠΌΠΈΡΡ Π·Π½Π°ΡΠ΅Π½ΠΈΡΠΌΠΈ. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Π²ΠΎΡ ΡΡΠΎ Π½ΠΎΠ»Π΅ΠΉ:
assert! and assert_eq!
ΠΡΠΈ Π΄Π²Π° ΠΌΠ°ΠΊΡΠΎΡΠ° ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΡΡ Π² ΡΠ΅ΡΡΠ°Ρ . assert! ΠΏΡΠΈΠ½ΠΈΠΌΠ°Π΅Ρ Π»ΠΎΠ³ΠΈΡΠ΅ΡΠΊΠΎΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅. assert_eq! ΠΏΡΠΈΠ½ΠΈΠΌΠ°Π΅Ρ Π΄Π²Π° Π·Π½Π°ΡΠ΅Π½ΠΈΡ ΠΈ ΠΏΡΠΎΠ²Π΅ΡΡΠ΅Ρ, ΡΡΠΎ ΠΎΠ½ΠΈ ΡΠ°Π²Π½Ρ. true Π·Π°ΡΡΠΈΡΡΠ²Π°Π΅ΡΡΡ ΠΊΠ°ΠΊ ΡΡΠΏΠ΅Ρ , Π° false Π²ΡΠ·ΡΠ²Π°Π΅Ρ ΠΏΠ°Π½ΠΈΠΊΡ ΠΈ ΠΏΡΠΎΠ²Π°Π»ΠΈΠ²Π°Π΅Ρ ΡΠ΅ΡΡ. ΠΠΎΡ ΡΠ°ΠΊ:
Π’Π°ΠΊΠΎΠΉ ΠΊΠΎΠ΄ ΡΠΈΡΠ°Π΅ΡΡΡ Π»Π΅Π³ΡΠ΅, ΡΠ΅ΠΌ ΡΡΠΎΡ:
unreachable!
ΠΡΠΎΡ ΠΌΠ°ΠΊΡΠΎΡ ΠΏΡΠΈΠΌΠ΅Π½ΡΠ΅ΡΡΡ, ΠΊΠΎΠ³Π΄Π° Π²Ρ Ρ ΠΎΡΠΈΡΠ΅ ΠΏΠΎΠΌΠ΅ΡΠΈΡΡ ΠΊΠ°ΠΊΠΎΠΉ-ΡΠΎ ΠΊΠΎΠ΄, ΠΊΠΎΡΠΎΡΡΠΉ Π½ΠΈΠΊΠΎΠ³Π΄Π° Π½Π΅ Π΄ΠΎΠ»ΠΆΠ΅Π½ ΠΈΡΠΏΠΎΠ»Π½ΡΡΡΡΡ:
ΠΠ½ΠΎΠ³Π΄Π° Π²Π°ΠΌ ΠΏΡΠΈΠ΄ΡΡΡΡ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΡΡ Π²Π΅ΡΠ²ΠΈ ΡΡΠ»ΠΎΠ²Π½ΡΡ ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΈΠΉ, ΠΊΠΎΡΠΎΡΡΠ΅ ΡΠΎΡΠ½ΠΎ Π½ΠΈΠΊΠΎΠ³Π΄Π° Π½Π΅ ΠΈΡΠΏΠΎΠ»Π½ΡΡΡΡ. Π ΡΠ°ΠΊΠΎΠΌ ΡΠ»ΡΡΠ°Π΅, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅ ΡΡΠΎΡ ΠΌΠ°ΠΊΡΠΎΡ, ΡΡΠΎΠ±Ρ Π² ΡΠ»ΡΡΠ°Π΅ ΠΎΡΠΈΠ±ΠΊΠΈ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ° Π·Π°ΠΏΠ°Π½ΠΈΠΊΠΎΠ²Π°Π»Π°:
unimplemented!
ΠΡΠΎΡΠ΅Π΄ΡΡΠ½ΡΠ΅ ΠΌΠ°ΠΊΡΠΎΡΡ
ΠΡΠ»ΠΈ ΡΠΈΡΡΠ΅ΠΌΠ° ΠΌΠ°ΠΊΡΠΎΡΠΎΠ² Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ ΡΠ΄Π΅Π»Π°ΡΡ ΡΠΎΠ³ΠΎ, ΡΡΠΎ Π²Π°ΠΌ Π½ΡΠΆΠ½ΠΎ, Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π½Π°ΠΏΠΈΡΠ°ΡΡ ΠΏΠ»Π°Π³ΠΈΠ½ ΠΊ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡΡ. ΠΠΎ ΡΡΠ°Π²Π½Π΅Π½ΠΈΡ Ρ ΠΌΠ°ΠΊΡΠΎΡΠ°ΠΌΠΈ, ΡΡΠΎ Π³ΠΎΡΠ°Π·Π΄ΠΎ ΡΡΡΠ΄Π½Π΅Π΅, ΡΠ°ΠΌ Π΅ΡΡ Π±ΠΎΠ»Π΅Π΅ Π½Π΅ΡΡΠ°Π±ΠΈΠ»ΡΠ½ΡΠ΅ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΡ, ΠΈ Π΅ΡΡ ΡΠ»ΠΎΠΆΠ½Π΅Π΅ Π½Π°ΠΉΡΠΈ ΠΎΡΠΈΠ±ΠΊΠΈ. ΠΠ°ΡΠΎ Π²Ρ ΠΏΠΎΠ»ΡΡΠ°Π΅ΡΠ΅ Π³ΠΈΠ±ΠΊΠΎΡΡΡ β Π²Π½ΡΡΡΠΈ ΠΏΠ»Π°Π³ΠΈΠ½Π° ΠΌΠΎΠΆΠ΅Ρ ΠΈΡΠΏΠΎΠ»Π½ΡΡΡΡΡ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ»ΡΠ½ΡΠΉ ΠΊΠΎΠ΄ Π½Π° Rust. ΠΠ½ΠΎΠ³Π΄Π° ΠΏΠ»Π°Π³ΠΈΠ½Ρ ΡΠ°ΡΡΠΈΡΠ΅Π½ΠΈΡ ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡΠ° Π½Π°Π·ΡΠ²Π°ΡΡΡΡ ΠΏΡΠΎΡΠ΅Π΄ΡΡΠ½ΡΠΌΠΈ ΠΌΠ°ΠΊΡΠΎΡΠ°ΠΌΠΈ.