π¬Π ΡΠ΅ΠΌ ΡΠ°Π·Π½ΠΈΡΠ° ΠΌΠ΅ΠΆΠ΄Ρ ΠΏΠ°ΠΊΠ΅ΡΠ°ΠΌΠΈ ΠΈ ΠΌΠΎΠ΄ΡΠ»ΡΠΌΠΈ Go?
πΠ Go, ΠΏΠ°ΠΊΠ΅Ρ β ΡΡΠΎ ΠΊΠΎΠ»Π»Π΅ΠΊΡΠΈΡ ΠΈΡΡ ΠΎΠ΄Π½ΡΡ ΡΠ°ΠΉΠ»ΠΎΠ²
πΠ€Π°ΠΉΠ»Ρ Π΄Π»Ρ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΏΠ°ΠΊΠ΅ΡΠ° Π΄ΠΎΠ»ΠΆΠ½Ρ Π½Π°Ρ ΠΎΠ΄ΠΈΡΡΡΡ Π² ΠΎΠ΄Π½ΠΎΠΉ Π΄ΠΈΡΠ΅ΠΊΡΠΎΡΠΈΠΈ. ΠΠΎΠ»Π½ΠΎΠ΅ ΠΈΠΌΡ Π΄Π»Ρ ΠΏΠ°ΠΊΠ΅ΡΠ° ΡΡΡΠΎΠΈΡΡΡ ΠΈΠ· ΠΈΠΌΠ΅Π½ΠΈ ΠΌΠΎΠ΄ΡΠ»Ρ ΠΈ ΠΏΡΡΠΈ ΠΊ Π΄ΠΈΡΠ΅ΠΊΡΠΎΡΠΈΠΈ Ρ ΡΠ°ΠΉΠ»Π°ΠΌΠΈ.
β ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Π²
β ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Π² Π΄Π΅ΡΠ΅Π²Π΅ ΠΈΡΡ ΠΎΠ΄Π½ΠΈΠΊΠΎΠ² Π½Π°ΡΠ΅ΠΉ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ Π΅ΡΡΡ ΡΠ°ΠΉΠ»Ρ Π² Π΄ΠΈΡΠ΅ΠΊΡΠΎΠΎΡΠΈΠΈ
πΠ Go, ΠΏΠ°ΠΊΠ΅Ρ β ΡΡΠΎ ΠΊΠΎΠ»Π»Π΅ΠΊΡΠΈΡ ΠΈΡΡ ΠΎΠ΄Π½ΡΡ ΡΠ°ΠΉΠ»ΠΎΠ²
.go
Π² ΠΎΠ΄Π½ΠΎΠΉ Π΄ΠΈΡΠ΅ΠΊΡΠΎΡΠΈΠΈ ΠΈ Ρ ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²ΠΎΠΉ Π΄ΠΈΡΠ΅ΠΊΡΠΈΠ²ΠΎΠΉ package
, Π² ΡΠΎ Π²ΡΠ΅ΠΌΡ ΠΊΠ°ΠΊ ΠΌΠΎΠ΄ΡΠ»Ρ β ΡΡΠΎ Π΄Π΅ΡΠ΅Π²ΠΎ ΠΏΠ°ΠΊΠ΅ΡΠΎΠ². ΠΠΌΡ ΠΌΠΎΠ΄ΡΠ»Ρ Π·Π°Π΄Π°ΡΡΡΡ Π² go.mod
.πΠ€Π°ΠΉΠ»Ρ Π΄Π»Ρ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΏΠ°ΠΊΠ΅ΡΠ° Π΄ΠΎΠ»ΠΆΠ½Ρ Π½Π°Ρ ΠΎΠ΄ΠΈΡΡΡΡ Π² ΠΎΠ΄Π½ΠΎΠΉ Π΄ΠΈΡΠ΅ΠΊΡΠΎΡΠΈΠΈ. ΠΠΎΠ»Π½ΠΎΠ΅ ΠΈΠΌΡ Π΄Π»Ρ ΠΏΠ°ΠΊΠ΅ΡΠ° ΡΡΡΠΎΠΈΡΡΡ ΠΈΠ· ΠΈΠΌΠ΅Π½ΠΈ ΠΌΠΎΠ΄ΡΠ»Ρ ΠΈ ΠΏΡΡΠΈ ΠΊ Π΄ΠΈΡΠ΅ΠΊΡΠΎΡΠΈΠΈ Ρ ΡΠ°ΠΉΠ»Π°ΠΌΠΈ.
β ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Π²
go.mod
ΡΠΊΠ°Π·Π°Π½ΠΎ module example.org/mylib
, ΡΠΎΠ³Π΄Π° Π²ΡΠ΅ ΠΏΠ°ΠΊΠ΅ΡΡ ΠΈΠ· ΠΌΠΎΠ΄ΡΠ»Ρ example.org/mylib
Π΄ΠΎΠ»ΠΆΠ½Ρ Π±ΡΡΡ Π² Π΄ΠΎΡΠ΅ΡΠ½ΠΈΡ
Π΄ΠΈΡΠ΅ΠΊΡΠΎΡΠΈΡΡ
ΠΎΡΠ½ΠΎΡΠΈΡΠ΅Π»ΡΠ½ΠΎ go.mod
, ΠΈ ΠΏΡΡΡ ΠΊ Π΄ΠΈΡΠ΅ΠΊΡΠΎΡΠΈΠΈ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅Ρ ΠΈΠΌΡ ΠΏΠ°ΠΊΠ΅ΡΠ°.β ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Π² Π΄Π΅ΡΠ΅Π²Π΅ ΠΈΡΡ ΠΎΠ΄Π½ΠΈΠΊΠΎΠ² Π½Π°ΡΠ΅ΠΉ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ Π΅ΡΡΡ ΡΠ°ΠΉΠ»Ρ Π² Π΄ΠΈΡΠ΅ΠΊΡΠΎΠΎΡΠΈΠΈ
./cmd/root
. Π’ΠΎΠ³Π΄Π° ΡΡΠΈ ΡΠ°ΠΉΠ»Ρ Π΄ΠΎΠ»ΠΆΠ½Ρ Π±ΡΡΡ Π»ΠΈΠ±ΠΎ Ρ Π΄ΠΈΡΠ΅ΠΊΡΠΈΠ²ΠΎΠΉ package root
, Π»ΠΈΠ±ΠΎ package root_test
. Π ΠΏΠΎΠ»Π½ΠΎΠ΅ ΠΈΠΌΡ ΠΏΠ°ΠΊΠ΅ΡΠ° Π΄Π»Ρ ΡΡΠΈΡ
ΡΠ°ΠΉΠ»ΠΎΠ² Π±ΡΠ΄Π΅Ρ Π»ΠΈΠ±ΠΎ example.org/mylib/cmd/root
, Π»ΠΈΠ±ΠΎ example.org/mylib/cmd/root_test
(
ΡΠ΅ΡΡΡ Π΄Π»Ρ ΠΏΠ°ΠΊΠ΅ΡΠ° example.org/mylib/cmd/root)
.