[balun.courses] ΠΠ»Π°Π΄ΠΈΠΌΠΈΡ ΠΠ°Π»ΡΠ½ β ΠΠΆΠ΅Π½Π΅ΡΠΈΠΊΠΈ Π² Golang (2025)
Π ΡΠ΅ΠΌ ΠΈΠ½ΡΠ΅Π½ΡΠΈΠ²
ΠΠ°ΡΡΠΈΡΡΡΡ ΠΏΠΈΡΠ°ΡΡ ΠΎΠ±ΠΎΠ±ΡΠ΅Π½Π½ΡΠΉ ΠΊΠΎΠ΄ Π½Π° Go
Π Π°Π·Π±Π΅ΡΠ΅ΡΡΡΡ Ρ ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡΠΎΠΌ Π΄ΠΆΠ΅Π½Π΅ΡΠΈΠΊΠΎΠ² ΠΈ ΠΌΠ΅ΡΠ°ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ
ΠΠ»ΡΠ±ΠΎΠΊΠΎ ΡΠ°Π·Π±Π΅ΡΠ΅ΡΡ Π²Π½ΡΡΡΠ΅Π½Π½Π΅Π΅ ΡΡΡΡΠΎΠΉΡΡΠ²ΠΎ golang generics ΠΈ ΡΠ²ΡΠ·Π°Π½Π½ΡΠΉ Ρ Π½ΠΈΠΌΠΈ overhead
ΠΠ°ΡΡΠΈΡΡΡΡ ΠΏΠΈΡΠ°ΡΡ Π½Π° Π΄ΠΆΠ΅Π½Π΅ΡΠΈΠΊΠ°Ρ ΡΠ»ΠΎΠΆΠ½ΡΠ΅ ΠΈ ΡΠ½ΠΈΠ²Π΅ΡΡΠ°Π»ΡΠ½ΡΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ, Π° Π½Π΅ ΡΠΎΠ»ΡΠΊΠΎ ΠΎΠ±ΠΎΠ±ΡΠ΅Π½Π½ΡΡ ΡΠΎΡΡΠΈΡΠΎΠ²ΠΊΡ
Π Π°Π·Π±Π΅ΡΠ΅ΡΡΡΡ Ρ constraints ΠΈ ΠΈΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ
ΠΠ° ΠΏΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈΡ ΠΏΡΠΈΠΌΠ΅ΡΠ°Ρ Π½Π°ΡΡΠΈΡΡΡΡ, ΠΊΠΎΠ³Π΄Π° ΠΈ ΠΊΠ°ΠΊ ΠΏΡΠΈΠΌΠ΅Π½ΡΡΡ Π΄ΠΆΠ΅Π½Π΅ΡΠΈΠΊΠΈ Π² ΡΠ°Π±ΠΎΡΠ΅
ΠΠΎΠ΄ΡΠΎΠ±Π½ΠΎΠ΅ ΡΠΎΠ΄Π΅ΡΠΆΠ°Π½ΠΈΠ΅
Π£ΡΠΎΠΊ 1. ΠΠΆΠ΅Π½Π΅ΡΠΈΠΊΠΈ Π² Go: ΡΠΎΠ½ΠΊΠΎΡΡΠΈ ΠΈ Π½ΡΠ°Π½ΡΡ Π½Π° ΠΏΡΠΈΠΌΠ΅ΡΠ°Ρ ΠΊΠΎΠ΄Π°
Max generics
ΠΠ½ΡΡΠ°Π½ΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅
Map Keys
Constraints
Constraints union
Constraints intersection
Constraint with method
Constraint with field incorrect
Constraint with field correct
Generic constraint
ΠΠ±ΠΎΠ±ΡΠ΅Π½Π½ΡΠ΅ ΡΡΡΡΠΊΡΡΡΡ Π² Go β generic set, generic variadic parameters
Type inference
Type parameters skipping
Unnamed types
Type aliases
Partial type alias
Type assertions
Type parameter embedding
Π£ΡΠΎΠΊ 2. ΠΠ΅ΡΠΈΠΏΠΈΡΠ½ΡΠ΅ ΠΏΡΠΈΠΌΠ΅ΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ generics
ΠΠΎΠ³Π΄Π° ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π΄ΠΆΠ΅Π½Π΅ΡΠΈΠΊΠΈ Π½Π° ΠΏΡΠ°ΠΊΡΠΈΠΊΠ΅
ΠΠ΅ΡΠ°ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅
Generics with unsafe β ΡΠΏΡΠΎΡΠ΅Π½ΠΈΠ΅ ΠΊΠΎΠ΄Π°
Universal fabric β ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠΎΡΠΈΠ΅Π½ΡΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅
Generic decorator β ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½ΠΎΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅
Cloneable mixin β ΠΊΠ»ΠΎΠ½ΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΡΠΈΠΏΠΎΠ²
Π£ΡΠΎΠΊ 3. ΠΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ΠΈΡ Π΄ΠΆΠ΅Π½Π΅ΡΠΈΠΊΠΎΠ² Π² Go
Generic method incorrect
Generic method correct
Generics with constants
Generics with pointers
Generics maps and slices
Generics slices and strings
Generics method set
ΠΡΠ΅ΠΏΠΎΠ΄Π°Π²Π°ΡΠ΅Π»Ρ β ΠΠ»Π°Π΄ΠΈΠΌΠΈΡ ΠΠ°Π»ΡΠ½, ex-team lead Π² ΡΠ½Π΄Π΅ΠΊΡ
ΠΠ½ΡΡΡΠΈ:
3 ΡΡΠΎΠΊΠ° Π½Π° 1 ΡΠ°Ρ
ΠΡΠ°ΠΊΡΠΈΠΊΠ° ΠΈ ΠΏΡΠΈΠΌΠ΅ΡΡ ΠΊΠΎΠ΄Π°
ΠΠ±ΡΠΈΠΉ ΡΠ°Ρ Ρ ΠΎΡΠ²Π΅ΡΠ°ΠΌΠΈ Π½Π° Π²ΠΎΠΏΡΠΎΡΡ
ΠΠΎΡΡΡΠΏ ΠΊ ΠΈΠ½ΡΠ΅Π½ΡΠΈΠ²Ρ Π½Π° 1 Π³ΠΎΠ΄
ΠΠ°ΡΡΠΈΡΡΡΡ ΠΏΠΈΡΠ°ΡΡ ΠΎΠ±ΠΎΠ±ΡΠ΅Π½Π½ΡΠΉ ΠΊΠΎΠ΄ Π½Π° Go
Π Π°Π·Π±Π΅ΡΠ΅ΡΡΡΡ Ρ ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡΠΎΠΌ Π΄ΠΆΠ΅Π½Π΅ΡΠΈΠΊΠΎΠ² ΠΈ ΠΌΠ΅ΡΠ°ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ
ΠΠ»ΡΠ±ΠΎΠΊΠΎ ΡΠ°Π·Π±Π΅ΡΠ΅ΡΡ Π²Π½ΡΡΡΠ΅Π½Π½Π΅Π΅ ΡΡΡΡΠΎΠΉΡΡΠ²ΠΎ golang generics ΠΈ ΡΠ²ΡΠ·Π°Π½Π½ΡΠΉ Ρ Π½ΠΈΠΌΠΈ overhead
ΠΠ°ΡΡΠΈΡΡΡΡ ΠΏΠΈΡΠ°ΡΡ Π½Π° Π΄ΠΆΠ΅Π½Π΅ΡΠΈΠΊΠ°Ρ ΡΠ»ΠΎΠΆΠ½ΡΠ΅ ΠΈ ΡΠ½ΠΈΠ²Π΅ΡΡΠ°Π»ΡΠ½ΡΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ, Π° Π½Π΅ ΡΠΎΠ»ΡΠΊΠΎ ΠΎΠ±ΠΎΠ±ΡΠ΅Π½Π½ΡΡ ΡΠΎΡΡΠΈΡΠΎΠ²ΠΊΡ
Π Π°Π·Π±Π΅ΡΠ΅ΡΡΡΡ Ρ constraints ΠΈ ΠΈΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ
ΠΠ° ΠΏΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈΡ ΠΏΡΠΈΠΌΠ΅ΡΠ°Ρ Π½Π°ΡΡΠΈΡΡΡΡ, ΠΊΠΎΠ³Π΄Π° ΠΈ ΠΊΠ°ΠΊ ΠΏΡΠΈΠΌΠ΅Π½ΡΡΡ Π΄ΠΆΠ΅Π½Π΅ΡΠΈΠΊΠΈ Π² ΡΠ°Π±ΠΎΡΠ΅
ΠΠΎΠ΄ΡΠΎΠ±Π½ΠΎΠ΅ ΡΠΎΠ΄Π΅ΡΠΆΠ°Π½ΠΈΠ΅
Π£ΡΠΎΠΊ 1. ΠΠΆΠ΅Π½Π΅ΡΠΈΠΊΠΈ Π² Go: ΡΠΎΠ½ΠΊΠΎΡΡΠΈ ΠΈ Π½ΡΠ°Π½ΡΡ Π½Π° ΠΏΡΠΈΠΌΠ΅ΡΠ°Ρ ΠΊΠΎΠ΄Π°
Max generics
ΠΠ½ΡΡΠ°Π½ΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅
Map Keys
Constraints
Constraints union
Constraints intersection
Constraint with method
Constraint with field incorrect
Constraint with field correct
Generic constraint
ΠΠ±ΠΎΠ±ΡΠ΅Π½Π½ΡΠ΅ ΡΡΡΡΠΊΡΡΡΡ Π² Go β generic set, generic variadic parameters
Type inference
Type parameters skipping
Unnamed types
Type aliases
Partial type alias
Type assertions
Type parameter embedding
Π£ΡΠΎΠΊ 2. ΠΠ΅ΡΠΈΠΏΠΈΡΠ½ΡΠ΅ ΠΏΡΠΈΠΌΠ΅ΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ generics
ΠΠΎΠ³Π΄Π° ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π΄ΠΆΠ΅Π½Π΅ΡΠΈΠΊΠΈ Π½Π° ΠΏΡΠ°ΠΊΡΠΈΠΊΠ΅
ΠΠ΅ΡΠ°ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅
Generics with unsafe β ΡΠΏΡΠΎΡΠ΅Π½ΠΈΠ΅ ΠΊΠΎΠ΄Π°
Universal fabric β ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠΎΡΠΈΠ΅Π½ΡΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅
Generic decorator β ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½ΠΎΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅
Cloneable mixin β ΠΊΠ»ΠΎΠ½ΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΡΠΈΠΏΠΎΠ²
Π£ΡΠΎΠΊ 3. ΠΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ΠΈΡ Π΄ΠΆΠ΅Π½Π΅ΡΠΈΠΊΠΎΠ² Π² Go
Generic method incorrect
Generic method correct
Generics with constants
Generics with pointers
Generics maps and slices
Generics slices and strings
Generics method set
ΠΡΠ΅ΠΏΠΎΠ΄Π°Π²Π°ΡΠ΅Π»Ρ β ΠΠ»Π°Π΄ΠΈΠΌΠΈΡ ΠΠ°Π»ΡΠ½, ex-team lead Π² ΡΠ½Π΄Π΅ΠΊΡ
ΠΠ½ΡΡΡΠΈ:
3 ΡΡΠΎΠΊΠ° Π½Π° 1 ΡΠ°Ρ
ΠΡΠ°ΠΊΡΠΈΠΊΠ° ΠΈ ΠΏΡΠΈΠΌΠ΅ΡΡ ΠΊΠΎΠ΄Π°
ΠΠ±ΡΠΈΠΉ ΡΠ°Ρ Ρ ΠΎΡΠ²Π΅ΡΠ°ΠΌΠΈ Π½Π° Π²ΠΎΠΏΡΠΎΡΡ
ΠΠΎΡΡΡΠΏ ΠΊ ΠΈΠ½ΡΠ΅Π½ΡΠΈΠ²Ρ Π½Π° 1 Π³ΠΎΠ΄
favorite
0
star
0
