Go
Go, ΠΈΠ½Π°ΡΠ΅ Π½Π°Π·ΡΠ²Π°Π΅ΠΌΡΠΉ Golang, ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΎΡΠΊΡΡΡΡΠΌ ΡΠ·ΡΠΊΠΎΠΌ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ, ΠΊΠΎΡΠΎΡΡΠΉ ΠΏΠΎΡ ΠΎΠΆ Π½Π° C, Π½ΠΎ ΠΏΡΠΈ ΡΡΠΎΠΌ ΠΎΠΏΡΠΈΠΌΠΈΠ·ΠΈΡΠΎΠ²Π°Π½ Π΄Π»Ρ Π±ΠΎΠ»Π΅Π΅ Π±ΡΡΡΡΠΎΠΉ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΈΠΈ, ΡΠ΄ΠΎΠ±Π½ΠΎΠΉ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ ΠΊΠΎΠ½ΠΊΡΡΠ΅Π½ΡΠ½ΠΎΡΡΠΈ ΠΈ ΠΎΠ±ΡΠ΅ΠΉ ΠΏΡΠΎΡΡΠΎΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ.
Π Π°Π·ΡΠ°Π±Π°ΡΡΠ²Π°Π»ΡΡ ΠΈ ΠΈΠ·Π½Π°ΡΠ°Π»ΡΠ½ΠΎ ΠΏΡΠΈΠΌΠ΅Π½ΡΠ»ΡΡ ΡΡΠΎΡ ΡΠ·ΡΠΊ Π² Google. Π’Π΅ΠΌ Π½Π΅ ΠΌΠ΅Π½Π΅Π΅ Π·Π° Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΏΠΎΡΠ»Π΅Π΄Π½ΠΈΡ Π»Π΅Ρ Π²Π²ΠΈΠ΄Ρ ΡΠ²Π΅Π»ΠΈΡΠ΅Π½ΠΈΡ ΡΠΏΡΠΎΡΠ° Π½Π° ΠΌΠ½ΠΎΠ³ΠΎΠΏΠΎΡΠΎΡΠ½ΡΠ΅ ΡΠ΅ΡΠ΅Π²ΡΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ Π΅Π³ΠΎ Π½Π°ΡΠ°Π»ΠΈ ΠΎΡΠ²Π°ΠΈΠ²Π°ΡΡ ΠΈ Π΄ΡΡΠ³ΠΈΠ΅ ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΈ.
ΠΠ΅Π·Π°Π²ΠΈΡΠΈΠΌΠΎ ΠΎΡ ΡΠΎΠ³ΠΎ, Π³ΠΎΡΠΎΠ²ΠΈΡΠ΅ΡΡ Π»ΠΈ Π²Ρ ΠΊ ΡΠΎΠ±Π΅ΡΠ΅Π΄ΠΎΠ²Π°Π½ΠΈΡ Π² Google ΠΈΠ»ΠΈ ΠΏΡΠΎΡΡΠΎ Ρ ΠΎΡΠΈΡΠ΅ ΡΠΎΡ ΡΠ°Π½ΡΡΡ ΠΏΠ΅ΡΠ΅Π΄ΠΎΠ²ΡΠ΅ Π½Π°Π²ΡΠΊΠΈ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ, Go ΠΎΠΊΠ°ΠΆΠ΅ΡΡΡ ΡΠ΄Π°ΡΠ½ΡΠΌ Π²ΡΠ±ΠΎΡΠΎΠΌ. Π‘Π΅Π³ΠΎΠ΄Π½Ρ ΠΌΡ ΠΏΠΎΠΏΡΠ°ΠΊΡΠΈΠΊΡΠ΅ΠΌΡΡ Π² ΡΠ°Π±ΠΎΡΠ΅ Ρ ΡΡΠΈΠΌ Π·ΡΠΊΠΎΠΌ Π½Π° ΠΏΡΠΈΠΌΠ΅ΡΠ΅ 25 Π²Π΅ΡΠΎΡΡΠ½ΡΡ Π²ΠΎΠΏΡΠΎΡΠΎΠ² Π΄Π»Ρ ΡΠΎΠ±Π΅ΡΠ΅Π΄ΠΎΠ²Π°Π½ΠΈΡ ΠΈ ΠΎΡΠ²Π΅ΡΠΎΠ² Π½Π° Π½ΠΈΡ .
ΠΠ»Π°Π½ Π±ΡΠ΄Π΅Ρ ΡΠ°ΠΊΠΎΠ²:
Π²ΠΎΠΏΡΠΎΡΡ ΠΏΠΎ ΠΎΡΠ½ΠΎΠ²Π°ΠΌ Go;
Π²ΠΎΠΏΡΠΎΡΡ ΡΡΠ΅Π΄Π½Π΅Π³ΠΎ ΡΡΠΎΠ²Π½Ρ;
Π·Π°Π΄Π°ΡΠΈ ΠΏΠΎ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ Π½Π° Go;
Π²ΠΎΠΏΡΠΎΡΡ, ΠΊΠ°ΡΠ°ΡΡΠΈΠ΅ΡΡ ΠΊΠΎΠ½ΠΊΡΡΠ΅Π½ΡΠ½ΠΎΡΡΠΈ;
Π΄Π°Π»ΡΠ½Π΅ΠΉΡΠΈΠ΅ ΡΠ°Π³ΠΈ ΠΎΠ±ΡΡΠ΅Π½ΠΈΡ.
ΠΠΎΠΏΡΠΎΡΡ ΠΏΠΎ ΠΎΡΠ½ΠΎΠ²Π°ΠΌ Go
1. Π ΡΠ΅ΠΌ ΠΏΡΠ΅ΠΈΠΌΡΡΠ΅ΡΡΠ²ΠΎ Go ΠΏΠ΅ΡΠ΅Π΄ Π΄ΡΡΠ³ΠΈΠΌΠΈ ΡΠ·ΡΠΊΠ°ΠΌΠΈ?
Π ΠΎΡΠ»ΠΈΡΠΈΠ΅ ΠΎΡ Π΄ΡΡΠ³ΠΈΡ ΡΠ·ΡΠΊΠΎΠ², ΠΊΠΎΡΠΎΡΡΠ΅ Π·Π°ΡΠΎΠΆΠ΄Π°Π»ΠΈΡΡ Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ Π°ΠΊΠ°Π΄Π΅ΠΌΠΈΡΠ΅ΡΠΊΠΈΡ ΡΠΊΡΠΏΠ΅ΡΠΈΠΌΠ΅Π½ΡΠΎΠ², Π² Go ΠΊΠΎΠ΄ ΡΠΏΡΠΎΠ΅ΠΊΡΠΈΡΠΎΠ²Π°Π½ ΠΏΡΠ°Π³ΠΌΠ°ΡΠΈΡΠ½ΠΎ. ΠΠ°ΠΆΠ΄Π°Ρ ΠΈΠ· Π΅Π³ΠΎ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠ΅ΠΉ ΠΈ Π²ΡΠ±ΠΎΡ ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡΠ° ΡΠ°Π·ΡΠ°Π±ΠΎΡΠ°Π½Ρ Ρ ΡΡΠ΅ΡΠΎΠΌ ΡΠ΄ΠΎΠ±ΡΡΠ²Π° Π΄Π»Ρ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΡΠ°.
Go ΠΎΠΏΡΠΈΠΌΠΈΠ·ΠΈΡΠΎΠ²Π°Π½ ΠΏΠΎΠ΄ ΠΊΠΎΠ½ΠΊΡΡΠ΅Π½ΡΠ½ΠΎΡΡΡ ΠΈ ΠΎΡΠ»ΠΈΡΠ½ΠΎ ΠΏΠΎΠ΄Π΄Π°Π΅ΡΡΡ ΠΌΠ°ΡΡΡΠ°Π±ΠΈΡΠΎΠ²Π°Π½ΠΈΡ.
Go Π·Π°ΡΠ°ΡΡΡΡ ΠΏΡΠΈΠ·Π½Π°Π΅ΡΡΡ Π±ΠΎΠ»Π΅Π΅ ΡΠ΄ΠΎΠ±ΠΎΡΠΈΡΠ°Π΅ΠΌΡΠΌ, ΡΠ΅ΠΌ Π΅Π³ΠΎ Π°Π»ΡΡΠ΅ΡΠ½Π°ΡΠΈΠ²Ρ, Π²Π²ΠΈΠ΄Ρ Π΅Π΄ΠΈΠ½ΠΎΠ³ΠΎ ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΠΎΠ³ΠΎ ΡΠΎΡΠΌΠ°ΡΠ° ΠΊΠΎΠ΄Π°.
ΠΠ²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠ°Ρ ΡΠ±ΠΎΡΠΊΠ° ΠΌΡΡΠΎΡΠ° Π² Π½Π΅ΠΌ Π·Π°ΠΌΠ΅ΡΠ½ΠΎ ΡΡΡΠ΅ΠΊΡΠΈΠ²Π½Π΅Π΅, ΡΠ΅ΠΌ Π² Java ΠΈΠ»ΠΈ Python, ΡΠ°ΠΊ ΠΊΠ°ΠΊ Π²ΡΠΏΠΎΠ»Π½ΡΠ΅ΡΡΡ ΠΏΠ°ΡΠ°Π»Π»Π΅Π»ΡΠ½ΠΎ Ρ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΎΠΉ.
2. Π§ΡΠΎ ΡΠ°ΠΊΠΎΠ΅ ΡΡΡΠΎΠΊΠΎΠ²ΡΠ΅ Π»ΠΈΡΠ΅ΡΠ°Π»Ρ?
Π‘ΡΡΠΎΠΊΠΎΠ²ΡΠΉ Π»ΠΈΡΠ΅ΡΠ°Π» βββ ΡΡΠΎ ΡΡΡΠΎΠΊΠΎΠ²Π°Ρ ΠΊΠΎΠ½ΡΡΠ°Π½ΡΠ°, ΡΡΠΎΡΠΌΠΈΡΠΎΠ²Π°Π½Π½Π°Ρ ΠΊΠΎΠ½ΠΊΠ°ΡΠ΅Π½Π°ΡΠΈΠ΅ΠΉ ΡΠΈΠΌΠ²ΠΎΠ»ΠΎΠ². ΠΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½Ρ ΠΎΠ½ΠΈ ΠΌΠΎΠ³ΡΡ Π±ΡΡΡ Π² Π΄Π²ΡΡ Π²ΠΈΠ΄Π°Ρ : Π½Π΅ΠΎΠ±ΡΠ°Π±ΠΎΡΠ°Π½Π½ΡΠΌΠΈ (ΡΡΡΡΠΌΠΈ) ΠΈΠ»ΠΈ ΠΈΠ½ΡΠ΅ΡΠΏΡΠ΅ΡΠΈΡΠΎΠ²Π°Π½Π½ΡΠΌΠΈ ΡΡΡΠΎΠΊΠΎΠ²ΡΠΌΠΈ Π»ΠΈΡΠ΅ΡΠ°Π»Π°ΠΌΠΈ.
Π‘ΡΡΡΠ΅ ΡΡΡΠΎΠΊΠΎΠ²ΡΠ΅ Π»ΠΈΡΠ΅ΡΠ°Π»Ρ ΠΏΠΈΡΡΡΡΡ Π² Π»Π΅Π²ΡΡ
ΠΊΠ°Π²ΡΡΠΊΠ°Ρ
(foo) ΠΈ Π·Π°ΠΏΠΎΠ»Π½ΡΡΡΡΡ Π½Π΅ ΠΈΠ½ΡΠ΅ΡΠΏΡΠ΅ΡΠΈΡΠΎΠ²Π°Π½Π½ΡΠΌΠΈ ΡΠΈΠΌΠ²ΠΎΠ»Π°ΠΌΠΈ UTF-8. ΠΠ½ΡΠ΅ΡΠΏΡΠ΅ΡΠΈΡΠΎΠ²Π°Π½Π½ΡΠ΅ ΠΆΠ΅ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΡΡ ΡΠΎ, ΡΡΠΎ ΠΌΡ ΠΎΠ±ΡΡΠ½ΠΎ Π½Π°Π·ΡΠ²Π°Π΅ΠΌ ΡΡΡΠΎΠΊΠ°ΠΌΠΈ, ΠΊΠΎΡΠΎΡΡΠ΅ Π·Π°ΠΏΠΈΡΡΠ²Π°ΡΡΡΡ Π² Π΄Π²ΠΎΠΉΠ½ΡΠ΅ ΠΊΠ°Π²ΡΡΠΊΠΈ ΠΈ ΡΠΎΠ΄Π΅ΡΠΆΠ°Ρ Π»ΡΠ±ΠΎΠΉ ΡΠΈΠΌΠ²ΠΎΠ», Π·Π° ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ΠΌ ΡΠ°Π·ΡΡΠ²Π° ΡΡΡΠΎΠΊΠΈ ΠΈ Π½Π΅ Π·Π°ΠΊΡΡΡΡΡ
Π΄Π²ΠΎΠΉΠ½ΡΡ
ΠΊΠ°Π²ΡΡΠ΅ΠΊ.
3. ΠΠ°ΠΊΠΈΠ΅ ΡΠΈΠΏΡ Π΄Π°Π½Π½ΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΡΡ Π² Go?
Go ΡΠ°Π±ΠΎΡΠ°Π΅Ρ ΡΠΎ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΌΠΈ ΡΠΈΠΏΠ°ΠΌΠΈ:
Method (ΠΌΠ΅ΡΠΎΠ΄);
Boolean (Π»ΠΎΠ³ΠΈΡΠ΅ΡΠΊΠΈΠΉ ΡΠΈΠΏ);
Numeric (ΡΠΈΡΠ»Π΅Π½Π½ΡΠΉ);
String (ΡΡΡΠΎΠΊΠΎΠ²ΡΠΉ);
Array (ΠΌΠ°ΡΡΠΈΠ²);
Slice (ΡΡΠ΅Π·);
Struct (ΡΡΡΡΠΊΡΡΡΠ°);
Pointer (ΡΠΊΠ°Π·Π°ΡΠ΅Π»Ρ);
Function (ΡΡΠ½ΠΊΡΠΈΡ);
Interface (ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ);
Map (ΠΊΠ°ΡΡΠ°);
Channel (ΠΊΠ°Π½Π°Π»).
4. Π§ΡΠΎ ΡΠ°ΠΊΠΎΠ΅ ΠΏΠ°ΠΊΠ΅ΡΡ Π² ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ΅ Go?
ΠΠ°ΠΊΠ΅ΡΡ (pkg) βββ ΡΡΠΎ ΠΊΠ°ΡΠ°Π»ΠΎΠ³ΠΈ Π² ΡΠ°Π±ΠΎΡΠ΅ΠΌ ΠΏΡΠΎΡΡΡΠ°Π½ΡΡΠ²Π΅ Go, Π³Π΄Π΅ ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΡΡ ΠΈΡΡ
ΠΎΠ΄Π½ΡΠ΅ ΡΠ°ΠΉΠ»Ρ ΠΈΠ»ΠΈ Π΄ΡΡΠ³ΠΈΠ΅ ΠΏΠ°ΠΊΠ΅ΡΡ. ΠΠ°ΠΆΠ΄Π°Ρ ΡΡΠ½ΠΊΡΠΈΡ, ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½Π°Ρ ΠΈ ΡΠΈΠΏ ΠΈΠ· ΠΈΡΡ
ΠΎΠ΄Π½ΡΡ
ΡΠ°ΠΉΠ»ΠΎΠ² Ρ
ΡΠ°Π½ΡΡΡΡ Π² ΡΠ²ΡΠ·Π°Π½Π½ΠΎΠΌ Ρ Π½ΠΈΠΌΠΈ ΠΏΠ°ΠΊΠ΅ΡΠ΅. ΠΠ°ΠΆΠ΄ΡΠΉ ΠΈΡΡ
ΠΎΠ΄Π½ΡΠΉ ΡΠ°ΠΉΠ» Go ΠΏΡΠΈΠ½Π°Π΄Π»Π΅ΠΆΠΈΡ ΠΏΠ°ΠΊΠ΅ΡΡ, ΠΊΠΎΡΠΎΡΡΠΉ ΠΎΠ±ΡΡΠ²Π»ΡΠ΅ΡΡΡ Π² Π½Π°ΡΠ°Π»Π΅ ΡΡΠΎΠ³ΠΎ ΡΠ°ΠΉΠ»Π°:
ΠΠΎΠΆΠ½ΠΎ ΠΈΠΌΠΏΠΎΡΡΠΈΡΠΎΠ²Π°ΡΡ ΠΈ ΡΠΊΡΠΏΠΎΡΡΠΈΡΠΎΠ²Π°ΡΡ ΠΏΠ°ΠΊΠ΅ΡΡ, ΡΡΠΎΠ±Ρ ΠΏΠΎΠ²ΡΠΎΡΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΠΊΡΠΏΠΎΡΡΠΈΡΠΎΠ²Π°Π½Π½ΡΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ ΠΈΠ»ΠΈ ΡΠΈΠΏΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ:
Π‘ΡΠ°Π½Π΄Π°ΡΡΠ½ΡΠΉ ΠΏΠ°ΠΊΠ΅Ρ Go βββ ΡΡΠΎ fmt. ΠΠ½ ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½ΠΎΡΡΡ ΡΠΎΡΠΌΠ°ΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΈ Π²ΡΠ²ΠΎΠ΄Π° Π²ΡΠΎΠ΄Π΅ Println().
5. ΠΠ°ΠΊΡΡ ΡΠΎΡΠΌΡ ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°Π½ΠΈΡ ΡΠΈΠΏΠΎΠ² ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅Ρ Go? ΠΡΠ΅ΠΎΠ±ΡΠ°Π·ΡΠΉΡΠ΅ ΡΠ΅Π»ΠΎΠ΅ ΡΠΈΡΠ»ΠΎ Π² ΡΠΈΡΠ»ΠΎ Ρ ΠΏΠ»Π°Π²Π°ΡΡΠ΅ΠΉ Π·Π°ΠΏΡΡΠΎΠΉ.
Go ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅Ρ ΡΠ²Π½ΡΠ΅ ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°Π½ΠΈΡ ΡΠΈΠΏΠΎΠ², ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡ ΡΡΠ΅Π±ΠΎΠ²Π°Π½ΠΈΡΠΌ ΡΡΡΠΎΠ³ΠΎΠΉ ΡΠΈΠΏΠΈΠ·Π°ΡΠΈΠΈ.
6. Π§ΡΠΎ ΡΠ°ΠΊΠΎΠ΅ Π³ΠΎΡΡΡΠΈΠ½Π°? ΠΠ°ΠΊ Π΅Π΅ ΠΎΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ?
ΠΠΎΡΡΡΠΈΠ½Π° βββ ΡΡΠΎ ΡΡΠ½ΠΊΡΠΈΡ ΠΈΠ»ΠΈ ΠΌΠ΅ΡΠΎΠ΄, ΠΊΠΎΡΠΎΡΡΠ΅ Π²ΡΠΏΠΎΠ»Π½ΡΡΡΡΡ ΠΊΠΎΠ½ΠΊΡΡΠ΅Π½ΡΠ½ΠΎ Ρ Π»ΡΠ±ΡΠΌΠΈ Π΄ΡΡΠ³ΠΈΠΌΠΈ Π³ΠΎΡΡΡΠΈΠ½Π°ΠΌΠΈ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ ΡΠΏΠ΅ΡΠΈΠ°Π»ΡΠ½ΡΠΉ ΠΏΠΎΡΠΎΠΊ. ΠΠΎΡΠΎΠΊΠΈ Π³ΠΎΡΡΡΠΈΠ½ Π±ΠΎΠ»Π΅Π΅ Π»Π΅Π³ΠΊΠΎΠ²Π΅ΡΠ½Ρ, ΡΠ΅ΠΌ ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΡΠ΅ ΠΏΠΎΡΠΎΠΊΠΈ, ΠΈ Π±ΠΎΠ»ΡΡΠΈΠ½ΡΡΠ²ΠΎ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌ Go ΠΎΠ΄Π½ΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡ ΡΡΡΡΡΠΈ Π³ΠΎΡΡΡΠΈΠ½.
ΠΠ»Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ Π³ΠΎΡΡΡΠΈΠ½Ρ ΠΏΠ΅ΡΠ΅Π΄ ΠΎΠ±ΡΡΠ²Π»Π΅Π½ΠΈΠ΅ΠΌ ΡΡΠ½ΠΊΡΠΈΠΈ Π½ΡΠΆΠ½ΠΎ Π΄ΠΎΠ±Π°Π²ΠΈΡΡ ΠΊΠ»ΡΡΠ΅Π²ΠΎΠ΅ ΡΠ»ΠΎΠ²ΠΎ go.
ΠΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ Π³ΠΎΡΡΡΠΈΠ½Ρ ΠΌΠΎΠΆΠ½ΠΎ ΠΎΡΠΏΡΠ°Π²ΠΊΠΎΠΉ ΡΠΈΠ³Π½Π°Π»Π° Π² ΡΠΏΠ΅ΡΠΈΠ°Π»ΡΠ½ΡΠΉ ΠΊΠ°Π½Π°Π». ΠΡΠΈ ΡΡΠΎΠΌ Π³ΠΎΡΡΡΠΈΠ½Ρ ΠΌΠΎΠ³ΡΡ ΠΎΡΠ²Π΅ΡΠ°ΡΡ Π½Π° ΡΠ°ΠΊΠΈΠ΅ ΡΠΈΠ³Π½Π°Π»Ρ, ΡΠΎΠ»ΡΠΊΠΎ Π΅ΡΠ»ΠΈ ΠΈΠΌ ΡΠΊΠ°Π·Π°Π½ΠΎ Π²ΡΠΏΠΎΠ»Π½ΡΡΡ ΠΏΡΠΎΠ²Π΅ΡΠΊΡ. ΠΠΎΡΡΠΎΠΌΡ Π½ΡΠΆΠ½ΠΎ Π±ΡΠ΄Π΅Ρ Π²ΠΊΠ»ΡΡΠΈΡΡ ΠΏΡΠΎΠ²Π΅ΡΠΊΠΈ Π² ΠΏΠΎΠ΄Ρ
ΠΎΠ΄ΡΡΠΈΠ΅ ΠΌΠ΅ΡΡΠ°, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ Π² Π½Π°ΡΠ°Π»ΠΎ ΡΠΈΠΊΠ»Π° for.
7. ΠΠ°ΠΊ ΠΏΡΠΎΠ²Π΅ΡΠΈΡΡ ΡΠΈΠΏ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ Π² ΡΡΠ΅Π΄Π΅ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ?
ΠΡΡΡΠΈΠΌ ΡΠΏΠΎΡΠΎΠ±ΠΎΠΌ ΠΏΡΠΎΠ²Π΅ΡΠΊΠΈ ΡΠΈΠΏΠ° ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ ΠΏΡΠΈ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠΈ ΡΠ²Π»ΡΠ΅ΡΡΡ Type Switch (ΠΏΠ΅ΡΠ΅ΠΊΠ»ΡΡΠ°ΡΠ΅Π»Ρ ΡΠΈΠΏΠΎΠ²). ΠΠ΅ΡΠ΅ΠΊΠ»ΡΡΠ°ΡΠ΅Π»Ρ ΡΠΈΠΏΠΎΠ² ΠΎΡΠ΅Π½ΠΈΠ²Π°Π΅Ρ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅ ΠΏΠΎ ΡΠΈΠΏΡ, Π° Π½Π΅ Π·Π½Π°ΡΠ΅Π½ΠΈΡ. ΠΠ°ΠΆΠ΄ΡΠΉ ΡΠ°ΠΊΠΎΠΉ ΠΏΠ΅ΡΠ΅ΠΊΠ»ΡΡΠ°ΡΠ΅Π»Ρ ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ Π½Π΅ ΠΌΠ΅Π½Π΅Π΅ ΠΎΠ΄Π½ΠΎΠ³ΠΎ case, ΠΊΠΎΡΠΎΡΡΠΉ Π²ΡΡΡΡΠΏΠ°Π΅Ρ Π² ΡΠΎΠ»ΠΈ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΠΈ ΡΡΠ»ΠΎΠ²ΠΈΡ, Π° ΡΠ°ΠΊΠΆΠ΅ ΠΊΠ΅ΠΉΡ default, ΠΊΠΎΡΠΎΡΡΠ΅ Π²ΡΠΏΠΎΠ»Π½ΡΠ΅ΡΡΡ, Π΅ΡΠ»ΠΈ Π½ΠΈ ΠΎΠ΄ΠΈΠ½ ΠΈΠ· ΠΊΠ΅ΠΉΡΠΎΠ² Π½Π΅ Π²Π΅ΡΠ΅Π½.
ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΌΠΎΠΆΠ½ΠΎ ΡΠΎΠ·Π΄Π°ΡΡ Type Switch, ΠΏΡΠΎΠ²Π΅ΡΡΡΡΠΈΠΉ, ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ Π»ΠΈ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ i ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ° ΡΠΈΠΏ int ΠΈΠ»ΠΈ string:
8. ΠΠ°ΠΊ ΠΊΠΎΠ½ΠΊΠ°ΡΠ΅Π½ΠΈΡΠΎΠ²Π°ΡΡ ΡΡΡΠΎΠΊΠΈ?
ΠΡΠΎΡΠ΅ Π²ΡΠ΅Π³ΠΎ ΠΊΠΎΠ½ΠΊΠ°ΡΠ΅Π½ΠΈΡΠΎΠ²Π°ΡΡ ΡΡΡΠΎΠΊΠΈ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΠ° ΠΊΠΎΠ½ΠΊΠ°ΡΠ΅Π½Π°ΡΠΈΠΈ (+), ΠΊΠΎΡΠΎΡΡΠΉ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΡΠΊΠ»Π°Π΄ΡΠ²Π°ΡΡ ΡΡΡΠΎΠΊΠΈ ΡΠ°ΠΊ ΠΆΠ΅, ΠΊΠ°ΠΊ ΡΠΈΡΠ»ΠΎΠ²ΡΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΡ.
ΠΠΎΠΏΡΠΎΡΡ ΡΡΠ΅Π΄Π½Π΅Π³ΠΎ ΡΡΠΎΠ²Π½Ρ
9. ΠΠΏΠΈΡΠΈΡΠ΅ ΡΠ°Π³ΠΈ ΡΠ΅ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ Π² Golang
Go ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅Ρ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠ΅ ΡΠ΅ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΠΏΠ°ΠΊΠ΅ΡΠΎΠ² Ρ ΠΏΠΎΠΌΠΎΡΡΡ Π½Π°ΡΡΡΠ°ΠΈΠ²Π°Π΅ΠΌΡΡ ΡΠ΅ΡΡΠΎΠ²ΡΡ Π½Π°Π±ΠΎΡΠΎΠ².
ΠΠ»Ρ ΡΠΎΡΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΡΠ°ΠΊΠΎΠ³ΠΎ Π½Π°Π±ΠΎΡΠ° Π½ΡΠΆΠ½ΠΎ ΡΠΎΠ·Π΄Π°ΡΡ ΡΠ°ΠΉΠ», ΠΎΠΊΠ°Π½ΡΠΈΠ²Π°ΡΡΠΈΠΉΡΡ Π½Π° _test.go ΠΈ Π²ΠΊΠ»ΡΡΠ°ΡΡΠΈΠΉ ΡΡΠ½ΠΊΡΠΈΡ Testxxx, Π² ΠΊΠΎΡΠΎΡΠΎΠΉ xxx Π·Π°ΠΌΠ΅Π½ΡΠ΅ΡΡΡ ΠΈΠΌΠ΅Π½Π΅ΠΌ ΡΠ΅ΡΡΠΈΡΡΠ΅ΠΌΠΎΠΉ ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½ΠΎΡΡΠΈ. Π ΠΏΡΠΈΠΌΠ΅ΡΡ, ΡΡΠ½ΠΊΡΠΈΡ, ΡΠ΅ΡΡΠΈΡΡΡΡΠ°Ρ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ Π°Π²ΡΠΎΡΠΈΠ·Π°ΡΠΈΠΈ, Π±ΡΠ΄Π΅Ρ Π½Π°Π·ΡΠ²Π°ΡΡΡΡ TestLogin.
ΠΠ°ΡΠ΅ΠΌ Π½ΡΠΆΠ½ΠΎ ΠΏΠΎΠΌΠ΅ΡΡΠΈΡΡ ΡΠ°ΠΉΠ» ΡΠ΅ΡΡΠ° Π² ΡΠΎΡ ΠΆΠ΅ ΠΏΠ°ΠΊΠ΅Ρ, Π³Π΄Π΅ Π½Π°Ρ
ΠΎΠ΄ΠΈΡΡΡ ΡΠ°ΠΉΠ», ΠΊΠΎΡΠΎΡΡΠΉ Π²Ρ Ρ
ΠΎΡΠΈΡΠ΅ ΠΏΡΠΎΡΠ΅ΡΡΠΈΡΠΎΠ²Π°ΡΡ. Π€Π°ΠΉΠ» ΡΠ΅ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ Π±ΡΠ΄Π΅Ρ ΠΏΡΠΎΠΏΡΡΠΊΠ°ΡΡΡΡ ΠΏΡΠΈ ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΠΎΠΌ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠΈ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ ΠΈ Π²ΡΠΏΠΎΠ»Π½ΡΡΡΡΡ ΡΠΎΠ»ΡΠΊΠΎ ΠΏΡΠΈ Π²Π²Π΅Π΄Π΅Π½ΠΈΠΈ ΠΊΠΎΠΌΠ°Π½Π΄Ρ go test.
10. Π§ΡΠΎ ΡΠ°ΠΊΠΎΠ΅ Π·Π°ΠΌΡΠΊΠ°Π½ΠΈΡ ΡΡΠ½ΠΊΡΠΈΠΉ?
ΠΠ°ΠΌΡΠΊΠ°Π½ΠΈΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ βββ ΡΡΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ, ΡΡΡΠ»Π°ΡΡΠ΅Π΅ΡΡ Π½Π° ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅ Π²Π½Π΅ Π΅Π΅ ΡΠ΅Π»Π°. Π’Π°ΠΊΠ°Ρ ΡΡΠ½ΠΊΡΠΈΡ ΠΌΠΎΠΆΠ΅Ρ ΠΎΠ±ΡΠ°ΡΠ°ΡΡΡΡ ΠΊ ΡΡΠΈΠΌ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠΌ ΠΈ ΠΏΡΠΈΡΠ²Π°ΠΈΠ²Π°ΡΡ ΠΈΠΌ Π·Π½Π°ΡΠ΅Π½ΠΈΡ.
ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, adder() Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ Π·Π°ΠΌΡΠΊΠ°Π½ΠΈΠ΅, ΠΏΡΠΈΠ²ΡΠ·Π°Π½Π½ΠΎΠ΅ ΠΊ ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΠΎΠΉ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ sum, Π½Π° ΠΊΠΎΡΠΎΡΡΡ ΠΎΠ½ΠΎ ΡΡΡΠ»Π°Π΅ΡΡΡ.
11. ΠΠ°ΠΊ Π² Go ΡΠ΅Π°Π»ΠΈΠ·ΡΠ΅ΡΡΡ Π½Π°ΡΠ»Π΅Π΄ΠΎΠ²Π°Π½ΠΈΠ΅?
ΠΡΠΎ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΊΠ°Π²Π΅ΡΠ·Π½ΡΠΉ Π²ΠΎΠΏΡΠΎΡ: ΠΊΠ°ΠΊ ΡΠ°ΠΊΠΎΠ²ΠΎΠ³ΠΎ Π½Π°ΡΠ»Π΅Π΄ΠΎΠ²Π°Π½ΠΈΡ Π² Go Π½Π΅Ρ, ΠΏΠΎΡΠΊΠΎΠ»ΡΠΊΡ ΠΎΠ½ Π½Π΅ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅Ρ ΠΊΠ»Π°ΡΡΡ.
Π’Π΅ΠΌ Π½Π΅ ΠΌΠ΅Π½Π΅Π΅ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ Π½Π°ΡΠ»Π΅Π΄ΠΎΠ²Π°Π½ΠΈΡ ΠΌΠΎΠΆΠ½ΠΎ ΡΡΠΌΠΈΡΠΈΡΠΎΠ²Π°ΡΡ, Π·Π°Π΄Π΅ΠΉΡΡΠ²ΠΎΠ²Π°Π² ΠΊΠΎΠΌΠΏΠΎΠ·ΠΈΡΠΈΡ Π΄Π»Ρ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΡ Π½Π°ΡΠ°Π»ΡΠ½ΠΎΠ³ΠΎ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΡ Π½ΠΎΠ²ΠΎΠ³ΠΎ ΠΎΠ±ΡΠ΅ΠΊΡΠ° Π½Π° ΠΎΡΠ½ΠΎΠ²Π΅ ΡΡΡΠ΅ΡΡΠ²ΡΡΡΠ΅Π³ΠΎ ΠΎΠ±ΡΠ΅ΠΊΡΠ° ΡΡΡΡΠΊΡΡΡΡ. ΠΠΎΡΠ»Π΅ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ Π½ΠΎΠ²ΠΎΠ³ΠΎ ΠΎΠ±ΡΠ΅ΠΊΡΠ° Π΅Π³ΠΎ ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½ΠΎΡΡΡ ΠΌΠΎΠΆΠ½ΠΎ Π±ΡΠ΄Π΅Ρ ΡΠ°ΡΡΠΈΡΠΈΡΡ Π·Π° ΡΠ°ΠΌΠΊΠΈ ΠΈΡΡ ΠΎΠ΄Π½ΠΎΠΉ ΡΡΡΡΠΊΡΡΡΡ.
Π‘ΡΡΡΠΊΡΡΡΠ° Animal ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ ΡΡΠ½ΠΊΡΠΈΠΈ Eat(), Sleep() ΠΈ Run(). ΠΡΠΈ ΡΡΠ½ΠΊΡΠΈΠΈ Π²ΠΊΠ»Π°Π΄ΡΠ²Π°ΡΡΡΡ Π² Π΄ΠΎΡΠ΅ΡΠ½ΡΡ ΡΡΡΡΠΊΡΡΡΡ Dog ΠΏΡΠΎΡΡΡΠΌ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ΠΌ ΡΡΠΎΠΉ ΡΡΡΡΠΊΡΡΡΡ Π² Π½Π°ΡΠ°Π»ΠΎ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ Dog.
12. Π Π°ΡΡΠΊΠ°ΠΆΠΈΡΠ΅ ΠΎΠ± ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ°Ρ Π² Go. Π§Π΅ΠΌ ΠΎΠ½ΠΈ ΡΠ²Π»ΡΡΡΡΡ ΠΈ ΠΊΠ°ΠΊ ΡΠ°Π±ΠΎΡΠ°ΡΡ?
ΠΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΡ βββ ΡΡΠΎ ΠΎΡΠΎΠ±ΡΠΉ ΡΠΈΠΏ Π² Go, ΠΊΠΎΡΠΎΡΡΠΉ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅Ρ Π½Π°Π±ΠΎΡ ΡΠΈΠ³Π½Π°ΡΡΡ ΠΌΠ΅ΡΠΎΠ΄ΠΎΠ², Π½ΠΎ Π½Π΅ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΠ΅Ρ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ. ΠΠ½Π°ΡΠ΅Π½ΠΈΡ ΡΠΈΠΏΠ° interface ΠΌΠΎΠ³ΡΡ ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΡ Π»ΡΠ±ΠΎΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅, ΡΠ΅Π°Π»ΠΈΠ·ΡΡΡΠ΅Π΅ ΡΡΠΈ ΠΌΠ΅ΡΠΎΠ΄Ρ.
ΠΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΡ, ΠΏΠΎ ΡΡΡΠΈ, Π΄Π΅ΠΉΡΡΠ²ΡΡΡ ΠΊΠ°ΠΊ ΠΏΠ»Π΅ΠΉΡΡ ΠΎΠ»Π΄Π΅ΡΡ Π΄Π»Ρ ΠΌΠ΅ΡΠΎΠ΄ΠΎΠ², ΠΊΠΎΡΠΎΡΡΠ΅ Π±ΡΠ΄ΡΡ ΠΈΠΌΠ΅ΡΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΉ Π² Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ ΠΎΡ ΡΠΎΠ³ΠΎ, ΠΊΠ°ΠΊΠΎΠΉ ΠΎΠ±ΡΠ΅ΠΊΡ ΠΈΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅Ρ.
ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΌΠΎΠΆΠ½ΠΎ ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°ΡΡ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ geometry, ΠΊΠΎΡΠΎΡΡΠΉ Π±ΡΠ΄Π΅Ρ ΡΡΠ²Π΅ΡΠΆΠ΄Π°ΡΡ, ΡΡΠΎ Π²ΡΠ΅ ΡΠΈΠ³ΡΡΡ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΠΈΠ΅ ΡΡΠΎΡ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ, Π΄ΠΎΠ»ΠΆΠ½Ρ ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²ΡΠ²Π°ΡΡ area() ΠΈ perim().
13. Π§ΡΠΎ ΡΠ°ΠΊΠΎΠ΅ lvalue ΠΈ rvalue Π² Golang?
Lvalue:
ΠΎΠ·Π½Π°ΡΠ°Π΅Ρ ΡΠ°ΡΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π² ΠΏΠ°ΠΌΡΡΠΈ;
ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΠ΅Ρ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ;
ΠΌΡΡΠ°Π±Π΅Π»ΡΠ½ΠΎ;
ΠΌΠΎΠΆΠ΅Ρ Π½Π°Ρ ΠΎΠ΄ΠΈΡΡΡΡ ΡΠ»Π΅Π²Π° ΠΈΠ»ΠΈ ΡΠΏΡΠ°Π²Π° ΠΎΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΠ°
=.
ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Π² ΠΈΠ½ΡΡΡΡΠΊΡΠΈΠΈ x =20, x ΡΠ²Π»ΡΠ΅ΡΡΡ lvalue, Π° 20 rvalue.
Rvalue:
ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΠ΅Ρ Ρ ΡΠ°Π½ΡΡΠ΅Π΅ΡΡ Π² ΠΏΠ°ΠΌΡΡΠΈ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ Π΄Π°Π½Π½ΡΡ ;
ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΠ΅Ρ ΠΏΠΎΡΡΠΎΡΠ½Π½ΠΎΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅;
Π²ΡΠ΅Π³Π΄Π° Π½Π°Ρ ΠΎΠ΄ΠΈΡΡΡ ΡΠΏΡΠ°Π²Π° ΠΎΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΠ°
=.
ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΈΠ½ΡΡΡΡΠΊΡΠΈΡ 10 = 20 Π±ΡΠ΄Π΅Ρ Π½Π΅Π²Π°Π»ΠΈΠ΄Π½Π°, ΡΠ°ΠΊ ΠΊΠ°ΠΊ Π·Π΄Π΅ΡΡ rvalue (10) ΡΠ°ΡΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΎ ΡΠ»Π΅Π²Π° ΠΎΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΠ° =.
14. ΠΠ°ΠΊ Π² Go ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Ρ ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΈΠΈ ΡΠΈΠΊΠ»ΠΎΠ²?
Π Go Π΅ΡΡΡ ΡΠΎΠ»ΡΠΊΠΎ ΠΎΠ΄Π½Π° ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΈΡ ΡΠΈΠΊΠ»Π°: ΡΠΈΠΊΠ» for. Π Π½Π΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΡΡ ΡΡΠΈ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ°, ΡΠ°Π·Π΄Π΅Π»Π΅Π½Π½ΡΠ΅ ΡΠΎΡΠΊΠΎΠΉ Ρ Π·Π°ΠΏΡΡΠΎΠΉ.
ΠΠ½ΡΡΡΡΠΊΡΠΈΡ
Init, ΠΊΠΎΡΠΎΡΠ°Ρ Π²ΡΠΏΠΎΠ»Π½ΡΠ΅ΡΡΡ Π΄ΠΎ Π½Π°ΡΠ°Π»Π° ΡΠΈΠΊΠ»Π°. ΠΠ°ΠΊ ΠΏΡΠ°Π²ΠΈΠ»ΠΎ, Π·Π΄Π΅ΡΡ ΠΎΠ±ΡΡΠ²Π»ΡΠ΅ΡΡΡ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½Π°Ρ, Π²ΠΈΠ΄ΠΈΠΌΠ°Ρ ΡΠΎΠ»ΡΠΊΠΎ Π²Π½ΡΡΡΠΈ ΠΎΠ±Π»Π°ΡΡΠΈ ΡΠΈΠΊΠ»Π°for.ΠΡΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ ΡΡΠ»ΠΎΠ²ΠΈΡ, ΠΊΠΎΡΠΎΡΠΎΠ΅ ΠΏΠ΅ΡΠ΅Π΄ ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΠΈΡΠ΅ΡΠ°ΡΠΈΠ΅ΠΉ Π²ΡΡΠΈΡΠ»ΡΠ΅ΡΡΡ Π² Π»ΠΎΠ³ΠΈΡΠ΅ΡΠΊΠΎΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅, ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΡ, Π΄ΠΎΠ»ΠΆΠ΅Π½ Π»ΠΈ ΡΠΈΠΊΠ» ΠΏΡΠΎΠ΄ΠΎΠ»ΠΆΠ°ΡΡΡΡ.
ΠΠ½ΡΡΡΡΠΊΡΠΈΡ
post, Π²ΡΠΏΠΎΠ»Π½ΡΠ΅ΠΌΠ°Ρ Π² ΠΊΠΎΠ½ΡΠ΅ ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΠΈΡΠ΅ΡΠ°ΡΠΈΠΈ.
15. ΠΠΎΠΆΠ½ΠΎ Π»ΠΈ Π²Π΅ΡΠ½ΡΡΡ ΠΈΠ· ΡΡΠ½ΠΊΡΠΈΠΈ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΠΉ?
ΠΠ°. Π€ΡΠ½ΠΊΡΠΈΠΈ Π² Go Π²ΠΎΠ·Π²ΡΠ°ΡΠ°ΡΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΠΉ Π² ΠΈΠ½ΡΡΡΡΠΊΡΠΈΠΈ return, ΡΠ°Π·Π΄Π΅Π»ΡΡ ΠΈΡ
Π·Π°ΠΏΡΡΡΠΌΠΈ.
ΠΠ°Π΄Π°ΡΠΈ ΠΏΠΎ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ Π½Π° Go
16. Π Π΅Π°Π»ΠΈΠ·ΡΠΉΡΠ΅ ΡΡΠ΅ΠΊ (LIFO)
Π Π΅Π°Π»ΠΈΠ·ΡΠΉΡΠ΅ ΡΡΡΡΠΊΡΡΡΡ ΡΡΠ΅ΠΊΠ° Ρ ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½ΠΎΡΡΡΡ pop, append ΠΈ print top.
Π Π΅ΡΠ΅Π½ΠΈΠ΅
Π‘ΡΠ΅ΠΊ ΠΌΠΎΠΆΠ½ΠΎ ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°ΡΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΎΠ±ΡΠ΅ΠΊΡΠ° ΡΡΠ΅Π·Π°.
Π‘Π½Π°ΡΠ°Π»Π° ΠΌΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌ Π²ΡΡΡΠΎΠ΅Π½Π½ΡΡ ΡΡΠ½ΠΊΡΠΈΡ append() Π΄Π»Ρ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΡ ΠΏΡΠΈΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΡ. ΠΠ°Π»Π΅Π΅ Ρ ΠΏΠΎΠΌΠΎΡΡΡ len(stack)-1 ΠΌΡ ΠΈΠ·Π²Π»Π΅ΠΊΠ°Π΅ΠΌ Π²Π΅ΡΡ
ΡΡΠΊΡ ΡΡΠ΅ΠΊΠ° ΠΈ Π²ΡΠ²ΠΎΠ΄ΠΈΠΌ Π΅Π΅ Π½Π° ΡΠΊΡΠ°Π½.
ΠΠ»Ρ pop ΠΌΡ ΡΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°Π΅ΠΌ Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ Π½ΠΎΠ²ΠΎΠΉ Π΄Π»ΠΈΠ½Ρ ΡΡΠ΅ΠΊΠ° ΠΏΠΎΠ·ΠΈΡΠΈΡ Π²ΡΠ²Π΅Π΄Π΅Π½Π½ΠΎΠ³ΠΎ Π²Π΅ΡΡ
Π½Π΅Π³ΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΡ, len(stack)-1.
17. ΠΡΠ²Π΅Π΄ΠΈΡΠ΅ Π²ΡΠ΅ ΠΏΠ΅ΡΠΌΡΡΠ°ΡΠΈΠΈ ΡΠΈΠΌΠ²ΠΎΠ»ΠΎΠ² ΡΡΠ΅Π·Π° ΠΈΠ»ΠΈ ΡΡΡΠΎΠΊΠΈ
Π Π΅Π°Π»ΠΈΠ·ΡΠΉΡΠ΅ ΡΡΠ½ΠΊΡΠΈΡ perm(), ΠΏΡΠΈΠ½ΠΈΠΌΠ°ΡΡΡΡ ΡΡΠ΅Π· ΠΈΠ»ΠΈ ΡΡΡΠΎΠΊΡ ΠΈ Π²ΡΠ²ΠΎΠ΄ΡΡΡΡ Π²ΡΠ΅ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΡΠ΅ ΠΊΠΎΠΌΠ±ΠΈΠ½Π°ΡΠΈΠΈ Π΅Π³ΠΎ (Π΅Π΅) ΡΠΈΠΌΠ²ΠΎΠ»ΠΎΠ².
Π Π΅ΡΠ΅Π½ΠΈΠ΅
ΠΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌ ΡΠΈΠΏΡ rune Π΄Π»Ρ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠΈ ΠΈ ΡΡΠ΅Π·ΠΎΠ², ΠΈ ΡΡΡΠΎΠΊ. Runes ΡΠ²Π»ΡΡΡΡΡ ΠΊΠΎΠ΄ΠΎΠ²ΡΠΌΠΈ ΡΠΎΡΠΊΠ°ΠΌΠΈ ΠΈΠ· Unicode, Π° Π·Π½Π°ΡΠΈΡ ΠΌΠΎΠ³ΡΡ ΠΏΠ°ΡΡΠΈΡΡ ΡΡΡΠΎΠΊΠΈ ΠΈ ΡΡΠ΅Π·Ρ ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²ΠΎ.
18. ΠΠΎΠΌΠ΅Π½ΡΠΉΡΠ΅ ΠΌΠ΅ΡΡΠ°ΠΌΠΈ Π·Π½Π°ΡΠ΅Π½ΠΈΡ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ Π±Π΅Π· ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ ΠΏΡΠΎΠΌΠ΅ΠΆΡΡΠΎΡΠ½ΠΎΠΉ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ
Π Π΅Π°Π»ΠΈΠ·ΡΠΉΡΠ΅ swap(), ΠΎΠ±ΠΌΠ΅Π½ΠΈΠ²Π°ΡΡΡΡ Π·Π½Π°ΡΠ΅Π½ΠΈΡ Π΄Π²ΡΡ
ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ
, Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ ΡΡΠ΅ΡΡΡ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ.
Π Π΅ΡΠ΅Π½ΠΈΠ΅
ΠΠΎ ΠΌΠ½ΠΎΠ³ΠΈΡ Π΄ΡΡΠ³ΠΈΡ ΡΠ·ΡΠΊΠ°Ρ Π½Π°Π΄ ΡΡΠΎΠΉ Π·Π°Π΄Π°ΡΠ΅ΠΉ ΠΏΡΠΈΠ΄Π΅ΡΡΡ ΠΏΠΎΠ΄ΡΠΌΠ°ΡΡ, Π² Go ΠΆΠ΅ ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°ΡΡ Π΅Π΅ ΠΏΡΠΎΡΡΠΎ.
ΠΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ ΠΏΡΠΎΡΡΠΎ Π²ΠΊΠ»ΡΡΠΈΡΡ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΡ b, a = a, b, Π½Π° ΡΡΠΈ Π΄Π°Π½Π½ΡΠ΅ Π±ΡΠ΄Π΅Ρ ΡΡΡΠ»Π°ΡΡΡΡ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½Π°Ρ, Π½Π΅ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΡΡ Π½ΠΈ Ρ ΠΎΠ΄Π½ΠΈΠΌ ΠΈΠ· Π΅Π΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠΉ.
19. Π Π΅Π°Π»ΠΈΠ·ΡΠΉΡΠ΅ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ min ΠΈ max
Π Π΅Π°Π»ΠΈΠ·ΡΠΉΡΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ Min(x, y int) ΠΈ Max(x, y int), ΠΏΠΎΠ»ΡΡΠ°ΡΡΠΈΠ΅ Π΄Π²Π° ΡΠ΅Π»ΡΡ
ΡΠΈΡΠ»Π° ΠΈ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°ΡΡΠΈΡ
ΠΌΠ΅Π½ΡΡΠ΅Π΅ ΠΈΠ»ΠΈ Π±ΠΎΠ»ΡΡΠ΅Π΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²Π΅Π½Π½ΠΎ.
Π Π΅ΡΠ΅Π½ΠΈΠ΅
ΠΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ Go ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅Ρ min ΠΈ max ΡΠΎΠ»ΡΠΊΠΎ Π΄Π»Ρ ΡΠΈΡΠ΅Π» Ρ ΠΏΠ»Π°Π²Π°ΡΡΠ΅ΠΉ Π·Π°ΠΏΡΡΠΎΠΉ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ Π΄Π»Ρ ΡΡΠΎΠ³ΠΎ math.min ΠΈ math.max. ΠΠ°ΠΌ ΠΏΠΎΡΡΠ΅Π±ΡΠ΅ΡΡΡ ΡΠΎΠ·Π΄Π°ΡΡ ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΡΠ΅ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ, ΡΡΠΎΠ±Ρ ΡΠΎ ΠΆΠ΅ ΡΠ°ΠΌΠΎΠ΅ ΠΌΠΎΠΆΠ½ΠΎ Π±ΡΠ»ΠΎ ΠΏΡΠΎΠ΄Π΅Π»Π°ΡΡ Π΄Π»Ρ ΡΠ΅Π»ΡΡ
ΡΠΈΡΠ΅Π».
20. ΠΠ΅ΡΠ΅Π²Π΅ΡΠ½ΠΈΡΠ΅ ΠΏΠΎΡΡΠ΄ΠΎΠΊ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ² Π² ΡΡΠ΅Π·Π΅
Π Π΅Π°Π»ΠΈΠ·ΡΠΉΡΠ΅ ΡΡΠ½ΠΊΡΠΈΡ reverse, ΠΏΠΎΠ»ΡΡΠ°ΡΡΡΡ ΡΡΠ΅Π· ΡΠ΅Π»ΡΡ
ΡΠΈΡΠ΅Π» ΠΈ ΡΠ°Π·Π²ΠΎΡΠ°ΡΠΈΠ²Π°ΡΡΡΡ Π΅Π³ΠΎ Π±Π΅Π· ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ Π²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠ³ΠΎ ΡΡΠ΅Π·Π°.
Π Π΅ΡΠ΅Π½ΠΈΠ΅
Π¦ΠΈΠΊΠ» for ΠΌΠ΅Π½ΡΠ΅Ρ ΠΌΠ΅ΡΡΠ°ΠΌΠΈ Π·Π½Π°ΡΠ΅Π½ΠΈΡ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ° ΡΡΠ΅Π·Π°. ΠΠ½Π°ΡΠ΅Π½ΠΈΡ Π±ΡΠ΄ΡΡ ΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΡ ΡΠ»Π΅Π²Π° Π½Π°ΠΏΡΠ°Π²ΠΎ, ΠΈ Π² ΠΈΡΠΎΠ³Π΅ Π²ΡΠ΅ ΡΠ»Π΅ΠΌΠ΅Π½ΡΡ Π±ΡΠ΄ΡΡ ΡΠ°Π·Π²Π΅ΡΠ½ΡΡΡ.
21. ΠΠ°ΠΊ Π»Π΅Π³ΡΠ΅ Π²ΡΠ΅Π³ΠΎ ΠΏΡΠΎΠ²Π΅ΡΠΈΡΡ ΡΡΠ΅Π· Π½Π° ΠΏΡΡΡΠΎΡΡ?
Π‘ΠΎΠ·Π΄Π°ΠΉΡΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ, ΠΏΡΠΎΠ²Π΅ΡΡΡΡΡΡ ΡΡΠ΅Π· Π½Π° ΠΏΡΡΡΠΎΡΡ. ΠΠ°ΠΉΠ΄ΠΈΡΠ΅ ΡΠ°ΠΌΠΎΠ΅ ΠΏΡΠΎΡΡΠΎΠ΅ ΡΠ΅ΡΠ΅Π½ΠΈΠ΅.
Π Π΅ΡΠ΅Π½ΠΈΠ΅
ΠΠ΅Π³ΡΠ΅ Π²ΡΠ΅Π³ΠΎ ΠΏΡΠΎΠ²Π΅ΡΠΈΡΡ ΡΡΠ΅Π· Π½Π° ΠΏΡΡΡΠΎΡΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ Π²ΡΡΡΠΎΠ΅Π½Π½ΠΎΠΉ ΡΡΠ½ΠΊΡΠΈΠΈ len(), ΠΊΠΎΡΠΎΡΠ°Ρ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ Π΄Π»ΠΈΠ½Ρ ΡΡΠ΅Π·Π°. ΠΡΠ»ΠΈ len(slice) == 0, Π·Π½Π°ΡΠΈΡ ΡΡΠ΅Π· ΠΏΡΡΡ.
ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ:
22. ΠΡΡΠΎΡΠΌΠ°ΡΠΈΡΡΠΉΡΠ΅ ΡΡΡΠΎΠΊΡ Π±Π΅Π· Π΅Π΅ Π²ΡΠ²ΠΎΠ΄Π°
ΠΠ°ΠΉΠ΄ΠΈΡΠ΅ ΡΠ°ΠΌΡΠΉ ΠΏΡΠΎΡΡΠΎΠΉ ΡΠΏΠΎΡΠΎΠ± ΠΎΡΡΠΎΡΠΌΠ°ΡΠΈΡΠΎΠ²Π°ΡΡ ΡΡΡΠΎΠΊΡ Ρ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠΌΠΈ, Π½Π΅ Π²ΡΠ²ΠΎΠ΄Ρ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅.
Π Π΅ΡΠ΅Π½ΠΈΠ΅
ΠΠ΅Π³ΡΠ΅ Π²ΡΠ΅Π³ΠΎ ΡΡΠΎ ΡΠ΄Π΅Π»Π°ΡΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ fmt.Sprintf(), ΠΊΠΎΡΠΎΡΠ°Ρ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ ΡΡΡΠΎΠΊΡ, Π½Π΅ Π²ΡΠ²ΠΎΠ΄Ρ Π΅Π΅ Π½Π° ΡΠΊΡΠ°Π½.
ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ:
ΠΠΎΠΏΡΠΎΡΡ, ΠΊΠ°ΡΠ°ΡΡΠΈΠ΅ΡΡ ΠΊΠΎΠ½ΠΊΡΡΠ΅Π½ΡΠ½ΠΎΡΡΠΈ
23. ΠΠ±ΡΡΡΠ½ΠΈΡΠ΅ ΡΠ°Π·Π½ΠΈΡΡ ΠΌΠ΅ΠΆΠ΄Ρ ΠΊΠΎΠ½ΠΊΡΡΠ΅Π½ΡΠ½ΠΎΡΡΡΡ ΠΈ ΠΏΠ°ΡΠ°Π»Π»Π΅Π»ΡΠ½ΠΎΡΡΡΡ Π² Go
ΠΠΎΠ½ΠΊΡΡΠ΅Π½ΡΠ½ΠΎΡΡΡ βββ ΡΡΠΎ, ΠΊΠΎΠ³Π΄Π° ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ° ΠΌΠΎΠΆΠ΅Ρ ΡΠ°Π±ΠΎΡΠ°ΡΡ Ρ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΠΌΠΈ Π·Π°Π΄Π°ΡΠ°ΠΌΠΈ ΠΎΠ΄Π½ΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎ, Π° ΠΏΠ°ΡΠ°Π»Π»Π΅Π»ΡΠ½ΠΎΡΡΡ βββ ΡΡΠΎ, ΠΊΠΎΠ³Π΄Π° ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ° ΠΌΠΎΠΆΠ΅Ρ ΠΎΠ΄Π½ΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎ Π²ΡΠΏΠΎΠ»Π½ΡΡΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ Π·Π°Π΄Π°Ρ Π½Π° Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΡ ΠΏΡΠΎΡΠ΅ΡΡΠΎΡΠ°Ρ .
ΠΡΡΠ³ΠΈΠΌΠΈ ΡΠ»ΠΎΠ²Π°ΠΌΠΈ, ΠΊΠΎΠ½ΠΊΡΡΠ΅Π½ΡΠ½ΠΎΡΡΡ βββ ΡΡΠΎ ΡΠ²ΠΎΠΉΡΡΠ²ΠΎ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ, ΠΊΠΎΡΠΎΡΠΎΠ΅ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΠΌ Π·Π°Π΄Π°ΡΠ°ΠΌ Π±ΡΡΡ Π·Π°ΠΏΡΡΠ΅Π½Π½ΡΠΌΠΈ ΠΎΠ΄Π½ΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎ, Π½ΠΎ Π½Π΅ ΠΎΠ±ΡΠ·Π°ΡΠ΅Π»ΡΠ½ΠΎ ΠΎΠ΄Π½ΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎ Π²ΡΠΏΠΎΠ»Π½ΡΡΡΡΡ. ΠΠ°ΡΠ°Π»Π»Π΅Π»ΡΠ½ΠΎΡΡΡ ΠΆΠ΅ ΠΎΡΠ½ΠΎΡΠΈΡΡΡ ΠΊ ΡΠ²ΠΎΠΉΡΡΠ²Π°ΠΌ ΡΡΠ΅Π΄Ρ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ, ΠΊΠΎΠ³Π΄Π° Π΄Π²Π΅ ΠΈΠ»ΠΈ Π±ΠΎΠ»Π΅Π΅ Π·Π°Π΄Π°Ρ Π²ΡΠΏΠΎΠ»Π½ΡΡΡΡΡ ΠΎΠ΄Π½ΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎ.
ΠΡΠΎ Π·Π½Π°ΡΠΈΡ, ΡΡΠΎ ΠΏΠΎΡΡΠ΅Π΄ΡΡΠ²ΠΎΠΌ ΠΏΠ°ΡΠ°Π»Π»Π΅Π»ΡΠ½ΠΎΡΡΠΈ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠ»ΡΡΠΈΡΡ ΠΊΠΎΠ½ΠΊΡΡΠ΅Π½ΡΠ½ΠΎΠ΅ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅, Π½ΠΎ Π½Π° ΡΡΠΎΠΌ Π΅Π΅ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ Π½Π΅ ΠΎΠ³ΡΠ°Π½ΠΈΡΠΈΠ²Π°ΡΡΡΡ.
ΠΡΠ½ΠΎΠ²Π½ΡΠΌΠΈ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠ°ΠΌΠΈ Π΄Π»Ρ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ ΠΊΠΎΠ½ΠΊΡΡΠ΅Π½ΡΠ½ΠΎΡΡΠΈ Π² Go ΡΠ²Π»ΡΡΡΡΡ Π³ΠΎΡΡΡΠΈΠ½Ρ ΠΈ ΠΊΠ°Π½Π°Π»Ρ. ΠΠΎΡΡΡΠΈΠ½Ρ βββ ΡΡΠΎ ΠΊΠΎΠ½ΠΊΡΡΠ΅Π½ΡΠ½ΡΠ΅ Π»Π΅Π³ΠΊΠΎΠ²Π΅ΡΠ½ΡΠ΅ ΠΏΠΎΡΠΎΠΊΠΈ, Π° ΠΊΠ°Π½Π°Π»Ρ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡΡ ΠΈΠΌ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΎΠ²Π°ΡΡ Π² ΠΏΡΠΎΡΠ΅ΡΡΠ΅ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ.
24. Merge sort
Π Π΅Π°Π»ΠΈΠ·ΡΠΉΡΠ΅ ΠΊΠΎΠ½ΠΊΡΡΠ΅Π½ΡΠ½ΠΎΠ΅ ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ merge sort (ΡΠΎΡΡΠΈΡΠΎΠ²ΠΊΠ° ΡΠ»ΠΈΡΠ½ΠΈΠ΅ΠΌ), ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ Π³ΠΎΡΡΡΠΈΠ½Ρ ΠΈ ΠΊΠ°Π½Π°Π»Ρ.
Π ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΠΎΠΏΠΎΡΠ½ΠΎΠΉ ΡΠΎΡΠΊΠΈ ΠΌΠΎΠΆΠ½ΠΎ Π²Π·ΡΡΡ ΡΡΡ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΡΡ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ:
Π Π΅ΡΠ΅Π½ΠΈΠ΅
Π Π½Π°ΡΠ°Π»Π΅ ΠΏΡΠΈ ΡΠΎΡΡΠΈΡΠΎΠ²ΠΊΠ΅ ΡΠ»ΠΈΡΠ½ΠΈΠ΅ΠΌ ΠΌΡ ΡΠ΅ΠΊΡΡΡΠΈΠ²Π½ΠΎ ΡΠ°Π·Π΄Π΅Π»ΡΠ΅ΠΌ ΠΌΠ°ΡΡΠΈΠ² Π½Π° right ΠΈ left ΡΡΠΎΡΠΎΠ½Ρ ΠΈ Π½Π° ΡΡΡΠΎΠΊΠ°Ρ
30-34 Π²ΡΠ·ΡΠ²Π°Π΅ΠΌ MergeSort Π΄Π»Ρ ΠΎΠ±Π΅ΠΈΡ
ΡΡΠΎΡΠΎΠ½.
Π’Π΅ΠΏΠ΅ΡΡ Π½ΡΠΆΠ½ΠΎ ΡΠ΄Π΅Π»Π°ΡΡ ΡΠ°ΠΊ, ΡΡΠΎΠ±Ρ Merge(left, right) Π²ΡΠΏΠΎΠ»Π½ΡΠ»Π°ΡΡ ΠΏΠΎΡΠ»Π΅ ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΡ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅ΠΌΡΡ
Π·Π½Π°ΡΠ΅Π½ΠΈΠΉ ΠΎΡ ΠΎΠ±ΠΎΠΈΡ
ΡΠ΅ΠΊΡΡΡΠΈΠ²Π½ΡΡ
Π²ΡΠ·ΠΎΠ²ΠΎΠ², ΡΠΎ Π΅ΡΡΡ ΠΈ left ΠΈ right Π΄ΠΎΠ»ΠΆΠ½Ρ ΠΎΠ±Π½ΠΎΠ²Π»ΡΡΡΡΡ Π΄ΠΎ ΡΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ Merge(left, right) ΡΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½Π°. ΠΠ»Ρ ΡΡΠΎΠ³ΠΎ Π½Π° ΡΡΡΠΎΠΊΠ΅ 26 ΠΌΡ Π²Π²ΠΎΠ΄ΠΈΠΌ ΠΊΠ°Π½Π°Π» ΡΠΈΠΏΠ° bool ΠΈ ΠΎΡΠΏΡΠ°Π²Π»ΡΠ΅ΠΌ Π² Π½Π΅Π³ΠΎ true ΡΡΠ°Π·Ρ ΠΏΠΎΡΠ»Π΅ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ left = MergeSort(data[:mid] (ΡΡΡΠΎΠΊΠ° 32).
ΠΠΏΠ΅ΡΠ°ΡΠΈΡ <-done Π±Π»ΠΎΠΊΠΈΡΡΠ΅Ρ ΠΊΠΎΠ΄ Π½Π° ΡΡΡΠΎΠΊΠ΅ 35 Π΄ΠΎ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΠΈ Merge(left,right), ΡΡΠΎΠ±Ρ ΠΎΠ½Π° Π½Π΅ ΠΏΡΠΎΠ΄ΠΎΠ»ΠΆΠΈΠ»Π°ΡΡ, ΠΏΠΎΠΊΠ° Π³ΠΎΡΡΡΠΈΠ½Π° Π½Π΅ Π·Π°Π²Π΅ΡΡΠΈΡΡΡ. ΠΠΎΡΠ»Π΅ Π·Π°Π²Π΅ΡΡΠ΅Π½ΠΈΡ Π³ΠΎΡΡΡΠΈΠ½Ρ ΠΈ ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΡ true Π² ΠΊΠ°Π½Π°Π»Π΅ done ΠΊΠΎΠ΄ ΠΏΠ΅ΡΠ΅Ρ
ΠΎΠ΄ΠΈΡ ΠΊ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΠΈ Merge(left, right) Π½Π° ΡΡΡΠΎΠΊΠ΅ 36.
25. Π‘ΡΠΌΠΌΠ° ΠΊΠ²Π°Π΄ΡΠ°ΡΠΎΠ²
Π Π΅Π°Π»ΠΈΠ·ΡΠΉΡΠ΅ ΡΡΠ½ΠΊΡΠΈΡ SumOfSquares, ΠΏΠΎΠ»ΡΡΠ°ΡΡΡΡ ΡΠ΅Π»ΠΎΠ΅ ΡΠΈΡΠ»ΠΎ c ΠΈ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°ΡΡΡΡ ΡΡΠΌΠΌΡ Π²ΡΠ΅Ρ
ΠΊΠ²Π°Π΄ΡΠ°ΡΠΎΠ² ΠΌΠ΅ΠΆΠ΄Ρ 1 ΠΈ c. ΠΠ°ΠΌ ΠΏΠΎΡΡΠ΅Π±ΡΠ΅ΡΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΠΈ select, Π³ΠΎΡΡΡΠΈΠ½Ρ ΠΈ ΠΊΠ°Π½Π°Π»Ρ.
ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Π²Π²ΠΎΠ΄ 5 ΠΏΡΠΈΠ²Π΅Π΄Π΅Ρ ΠΊ Π²ΠΎΠ·Π²ΡΠ°ΡΠ΅Π½ΠΈΡ 55, ΠΏΠΎΡΠΎΠΌΡ ΡΡΠΎ $1Β² + 2Β² + 3Β² + 4Β² + 5Β² = 55$.
Π ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΠΎΡΠΏΡΠ°Π²Π½ΠΎΠΉ ΡΠΎΡΠΊΠΈ ΠΌΠΎΠΆΠ½ΠΎ Π²Π·ΡΡΡ ΡΡΠΎΡ ΠΊΠΎΠ΄:
Π Π΅ΡΠ΅Π½ΠΈΠ΅
Π Π°ΡΡΠΌΠΎΡΡΠΈΠΌ ΡΡΠ½ΠΊΡΠΈΡ SumOfSquares. Π‘Π½Π°ΡΠ°Π»Π° Π½Π° ΡΡΡΠΎΠΊΠ΅ 4 ΠΌΡ ΠΎΠ±ΡΡΠ²Π»ΡΠ΅ΠΌ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ y, ΠΏΠΎΡΠ»Π΅ ΡΠ΅Π³ΠΎ ΠΏΠ΅ΡΠ΅Ρ
ΠΎΠ΄ΠΈΠΌ ΠΊ ΡΠΈΠΊΠ»Ρ For-Select. Π ΠΈΠ½ΡΡΡΡΠΊΡΠΈΡΡ
select ΠΏΡΠΎΠΏΠΈΡΠ°Π½ΠΎ Π΄Π²Π° ΠΊΠ΅ΠΉΡΠ°.
case c <- (y*y): ΡΠ»ΡΠΆΠΈΡ Π΄Π»Ρ ΠΎΡΠΏΡΠ°Π²ΠΊΠΈ ΠΊΠ²Π°Π΄ΡΠ°ΡΠ°yΠΏΠΎ ΠΊΠ°Π½Π°Π»Ρc, ΠΊΠΎΡΠΎΡΡΠΉ ΠΏΡΠΈΠ½ΠΈΠΌΠ°Π΅ΡΡΡ Π² Π³ΠΎΡΡΡΠΈΠ½Π΅, ΡΠΎΠ·Π΄Π°Π½Π½ΠΎΠΉ Π² ΠΎΡΠ½ΠΎΠ²Π½ΠΎΠΉ ΡΡΡΠΈΠ½Π΅.case <-quit: ΡΠ»ΡΠΆΠΈΡ Π΄Π»Ρ ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΡ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ ΠΈΠ· ΠΎΡΠ½ΠΎΠ²Π½ΠΎΠΉ ΡΡΡΠΈΠ½Ρ, ΠΊΠΎΡΠΎΡΠΎΠ΅ Π²Π΅ΡΠ½Π΅ΡΡΡ ΠΈΠ· ΡΡΠ½ΠΊΡΠΈΠΈ.
Last updated