Go, ΠΊΠ°ΠΊ ΠΈ Π»ΡΠ±ΠΎΠΉ Π΄ΡΡΠ³ΠΎΠΉ ΡΠ·ΡΠΊ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ, ΠΏΡΠΈΠ΄Π΅ΡΠΆΠΈΠ²Π°Π΅ΡΡΡ ΠΏΡΠΈΠ½ΡΠΈΠΏΠ°: ΠΊΠΎΠ΄ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π²ΡΠ³Π»ΡΠ΄Π΅ΡΡ Π΅Π΄ΠΈΠ½ΠΎΠΎΠ±ΡΠ°Π·Π½ΠΎ. ΠΠ΅Π·Π°Π²ΠΈΡΠΈΠΌΠΎ ΠΎΡ Π°Π²ΡΠΎΡΠ°, Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ Π½Π°ΠΏΠΈΡΠ°Π½ΠΈΡ ΠΈΠ»ΠΈ ΠΊΠΎΠΌΠ°Π½Π΄Ρ β ΡΠΈΡΠ°Π΅ΠΌΠΎΡΡΡ ΠΊΠΎΠ΄Π° ΡΡΠΎΠΈΡ Π½Π° ΠΏΠ΅ΡΠ²ΠΎΠΌ ΠΌΠ΅ΡΡΠ΅. Π ΡΡΠΎΠΌ ΡΠ°Π·Π΄Π΅Π»Π΅ ΠΌΡ ΡΠ°ΡΡΠΌΠΎΡΡΠΈΠΌ:
- ΠΠ°ΠΊ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ ΡΠΎΡΠΌΠ°ΡΠΈΡΠΎΠ²Π°ΡΡ ΠΊΠΎΠ΄.
- ΠΠ°ΠΊ Π½Π°Ρ ΠΎΠ΄ΠΈΡΡ ΠΏΠΎΡΠ΅Π½ΡΠΈΠ°Π»ΡΠ½ΡΠ΅ ΠΎΡΠΈΠ±ΠΊΠΈ ΠΈ ΠΏΡΠ΅Π΄ΡΠΏΡΠ΅ΠΆΠ΄Π΅Π½ΠΈΡ.
- ΠΠ°ΠΊ Π½Π°ΡΡΡΠΎΠΈΡΡ Π»ΠΈΠ½ΡΠ΅ΡΡ Π΄Π»Ρ ΠΏΡΠΎΠ΅ΠΊΡΠ°.
π Π€ΠΎΡΠΌΠ°ΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅: gofmt
ΠΈ go fmt
Go ΠΏΠΎΡΡΠ°Π²Π»ΡΠ΅ΡΡΡ Ρ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠ°ΠΌΠΈ, ΠΊΠΎΡΠΎΡΡΠ΅ ΡΠΎΡΠΌΠ°ΡΠΈΡΡΡΡ ΠΊΠΎΠ΄ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ. ΠΡΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΠΈΠ·Π±Π΅ΠΆΠ°ΡΡ ΡΠΏΠΎΡΠΎΠ² ΠΎ ΡΠ°Π±ΡΠ»ΡΡΠΈΠΈ, ΠΎΡΡΡΡΠΏΠ°Ρ ΠΈΠ»ΠΈ ΡΠΊΠΎΠ±ΠΊΠ°Ρ .
gofmt
β Π±Π°Π·ΠΎΠ²ΡΠΉ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½Ρ, ΡΠΎΡΠΌΠ°ΡΠΈΡΡΠ΅Ρ ΡΠ°ΠΉΠ»Ρ:gofmt -w main.go
Π€Π»Π°Π³
-w
ΠΎΠ·Π½Π°ΡΠ°Π΅Ρ, ΡΡΠΎ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ Π±ΡΠ΄ΡΡ Π·Π°ΠΏΠΈΡΠ°Π½Ρ Π² ΡΠ°ΠΉΠ».go fmt
β ΠΎΠ±ΡΡΡΠΊΠ°, ΡΠΎΡΠΌΠ°ΡΠΈΡΡΠ΅Ρ Π²ΡΠ΅ ΡΠ°ΠΉΠ»Ρ ΠΏΠ°ΠΊΠ΅ΡΠ°:go fmt ./...
π‘ Π ΡΠ΅Π΄Π°ΠΊΡΠΎΡΠ°Ρ Π²ΡΠΎΠ΄Π΅ VS Code ΠΈΠ»ΠΈ GoLand ΡΠΎΡΠΌΠ°ΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΠΌΠΎΠΆΠ½ΠΎ Π²ΠΊΠ»ΡΡΠΈΡΡ Π½Π° ΡΠΎΡ ΡΠ°Π½Π΅Π½ΠΈΠ΅ ΡΠ°ΠΉΠ»Π°.
π§ ΠΠΈΠ½ΡΠΈΠ½Π³: Π²ΡΡΡΠΎΠ΅Π½Π½ΡΠ΅ ΡΡΠ΅Π΄ΡΡΠ²Π° VS Code
ΠΡΠ»ΠΈ ΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡ Visual Studio Code Ρ ΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½Π½ΡΠΌ ΡΠ°ΡΡΠΈΡΠ΅Π½ΠΈΠ΅ΠΌ Go, ΡΠΎ Π»ΠΈΠ½ΡΠΈΠ½Π³ ΡΠΆΠ΅ Π²ΠΊΠ»ΡΡΡΠ½ ΠΈΠ· ΠΊΠΎΡΠΎΠ±ΠΊΠΈ.
ΠΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ ΡΠ°ΡΡΠΈΡΠ΅Π½ΠΈΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅Ρ Π²ΡΡΡΠΎΠ΅Π½Π½ΡΠ΅ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΡ Go (govet, go vet, go build ΠΈ Π΄ΡΡΠ³ΠΈΠ΅), ΠΊΠΎΡΠΎΡΡΠ΅:
ΠΏΠΎΠ΄ΡΠ΅ΡΠΊΠΈΠ²Π°ΡΡ ΠΎΡΠΈΠ±ΠΊΠΈ ΠΈ ΠΏΡΠ΅Π΄ΡΠΏΡΠ΅ΠΆΠ΄Π΅Π½ΠΈΡ ΠΏΡΡΠΌΠΎ Π² ΡΠ΅Π΄Π°ΠΊΡΠΎΡΠ΅;
Π΄Π°ΡΡ Π²ΡΠΏΠ»ΡΠ²Π°ΡΡΠΈΠ΅ ΠΏΠΎΠ΄ΡΠΊΠ°Π·ΠΊΠΈ (hover);
ΠΏΡΠ΅Π΄Π»Π°Π³Π°ΡΡ Π°Π²ΡΠΎΠΈΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ;
ΠΈΠ½ΡΠ΅Π³ΡΠΈΡΠΎΠ²Π°Π½Ρ Ρ ΡΠΎΡΠΌΠ°ΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ ΠΈ ΡΠΎΡ ΡΠ°Π½Π΅Π½ΠΈΠ΅ΠΌ ΡΠ°ΠΉΠ»Π°.
Π§ΡΠΎΠ±Ρ Π²ΠΊΠ»ΡΡΠΈΡΡ ΠΈΠ»ΠΈ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡΡ Π½Π°ΡΡΡΠΎΠΉΠΊΠΈ Π»ΠΈΠ½ΡΠΈΠ½Π³Π°:
ΠΡΠΊΡΠΎΠΉ settings.json (Π½Π°ΡΡΡΠΎΠΉΠΊΠΈ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ ΠΈΠ»ΠΈ ΡΠ°Π±ΠΎΡΠ΅Π³ΠΎ ΠΏΡΠΎΡΡΡΠ°Π½ΡΡΠ²Π°).
ΠΠΎΠ±Π°Π²Ρ:
“go.lintTool”: “staticcheck”, “go.lintOnSave”: “package”
Π’Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΡΠΉ go vet:
“go.lintTool”: “golint”
ΠΡΠ΅ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ Π»ΠΈΠ½ΡΠ΅ΡΠ° Π±ΡΠ΄ΡΡ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ°ΡΡΡΡ Π² Π½ΠΈΠΆΠ½Π΅ΠΉ ΠΏΠ°Π½Π΅Π»ΠΈ PROBLEMS.
π‘ ΠΡΠΎ ΠΎΡΠ»ΠΈΡΠ½ΡΠΉ ΡΠΏΠΎΡΠΎΠ± ΠΎΡΡΠ»Π΅ΠΆΠΈΠ²Π°ΡΡ ΠΎΡΠΈΠ±ΠΊΠΈ ΠΈ Π½Π΅Π΄ΠΎΡΡΡΡ Π² ΡΠ΅Π°Π»ΡΠ½ΠΎΠΌ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ.
π ΠΠ»Π°Π²Π½ΠΎΠ΅ ΠΈΠ· Π³Π»Π°Π²Ρ
go fmt ΠΈ gofmt β ΡΠΎΡΠΌΠ°ΡΠΈΡΡΡΡ ΠΊΠΎΠ΄ ΠΏΠΎ ΡΡΠ°Π½Π΄Π°ΡΡΡ Go.
VS Code Ρ ΡΠ°ΡΡΠΈΡΠ΅Π½ΠΈΠ΅ΠΌ Go ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΠ΅Ρ Π²ΡΡΡΠΎΠ΅Π½Π½ΡΠΉ Π»ΠΈΠ½ΡΠΈΠ½Π³.
ΠΡΠ΅ ΠΎΡΠΈΠ±ΠΊΠΈ ΠΈ ΠΏΡΠ΅Π΄ΡΠΏΡΠ΅ΠΆΠ΄Π΅Π½ΠΈΡ ΡΡΠ°Π·Ρ Π²ΠΈΠ΄Π½Ρ Π² ΡΠ΅Π΄Π°ΠΊΡΠΎΡΠ΅.
ΠΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ Π°Π²ΡΠΎΡΠΎΡΠΌΠ°ΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΈ Π»ΠΈΠ½ΡΠ΅ΡΠ° ΡΠΊΠΎΠ½ΠΎΠΌΠΈΡ Π²ΡΠ΅ΠΌΡ ΠΈ Π΄Π΅Π»Π°Π΅Ρ ΠΊΠΎΠ΄ ΡΠΈΡΠ΅.