GoDasturchi
Go Modules and Dependencies

Go Modules and Dependencies

Go modullari va bog'liqliklar

Creating Packages darsida go.mod faylini ko'rgan bo'lsangiz-da, uning aniq vazifasini hali muhokama qilmadik. `go.mod` — loyihangizning "shaxsnomasi": u modulning nomini (module path) va u talab qiladigan Go versiyasini belgilaydi.

example.go
module example.com/app

go 1.21

module example.com/app qatori — bu butun loyihangizning import prefiksi. Loyihangizdagi har bir ichki paketning import yo'li shu prefiksdan boshlanadi: greet papkasidagi paket example.com/app/greet sifatida import qilinadi, internal/store esa example.com/app/internal/store sifatida. Bu — nima uchun bir xil kodni turli modul nomlari ostida ikki xil loyihaga ko'chirib bo'lmasligini tushuntiradi: import yo'llari modul nomiga qattiq bog'langan.

Tashqi kutubxonalar (masalan, boshqa dasturchi yozgan paket) ham xuddi shunday import qilinadi — ularning import yo'li ular joylashgan repozitoriy manzili bo'ladi, va go.modning require bo'limida ro'yxatga olinadi. Bu kursda faqat standart kutubxona va o'zingizning paketlaringiz bilan ishlaysiz, lekin naqsh bir xil: import yo'li = qayerdan kelib chiqqanini bildiruvchi manzil.

>_ Exercise

example.com/app moduli ichida greet paketini yarating (greet/greet.go): eksport qilingan Hello(name string) string funksiyasi "Salom, <name>!" qaytarsin. main.goda uni to'g'ri import yo'li (example.com/app/greet) bilan ishlatib ko'ring.

Stuck? Reveal a hint to help you.

Hints (0/3)

Key Takeaway

Key Takeaway:

go.moddagi module qatori butun loyihangizning import prefiksini belgilaydi. Loyihadagi barcha ichki paketlarning import yo'li shu prefiks va papka yo'lining birlashmasidan iborat bo'ladi.

NEXT UP

Project Structure: Organizing Go Applications

OUTPUT

$ go run main.go
Kodingizni ishga tushiring

Go Modules and Dependencies

Go modullari va bog'liqliklar

Creating Packages darsida go.mod faylini ko'rgan bo'lsangiz-da, uning aniq vazifasini hali muhokama qilmadik. `go.mod` — loyihangizning "shaxsnomasi": u modulning nomini (module path) va u talab qiladigan Go versiyasini belgilaydi.

example.go
module example.com/app

go 1.21

module example.com/app qatori — bu butun loyihangizning import prefiksi. Loyihangizdagi har bir ichki paketning import yo'li shu prefiksdan boshlanadi: greet papkasidagi paket example.com/app/greet sifatida import qilinadi, internal/store esa example.com/app/internal/store sifatida. Bu — nima uchun bir xil kodni turli modul nomlari ostida ikki xil loyihaga ko'chirib bo'lmasligini tushuntiradi: import yo'llari modul nomiga qattiq bog'langan.

Tashqi kutubxonalar (masalan, boshqa dasturchi yozgan paket) ham xuddi shunday import qilinadi — ularning import yo'li ular joylashgan repozitoriy manzili bo'ladi, va go.modning require bo'limida ro'yxatga olinadi. Bu kursda faqat standart kutubxona va o'zingizning paketlaringiz bilan ishlaysiz, lekin naqsh bir xil: import yo'li = qayerdan kelib chiqqanini bildiruvchi manzil.

>_ Exercise

example.com/app moduli ichida greet paketini yarating (greet/greet.go): eksport qilingan Hello(name string) string funksiyasi "Salom, <name>!" qaytarsin. main.goda uni to'g'ri import yo'li (example.com/app/greet) bilan ishlatib ko'ring.

Stuck? Reveal a hint to help you.

Hints (0/3)

Key Takeaway

Key Takeaway:

go.moddagi module qatori butun loyihangizning import prefiksini belgilaydi. Loyihadagi barcha ichki paketlarning import yo'li shu prefiks va papka yo'lining birlashmasidan iborat bo'ladi.

NEXT UP

Project Structure: Organizing Go Applications