Skip to content

Tashqi kutubxonalar

Shu vaqtgacha biz Go dasturlash tilida mavjud bo'lgan, ya'ni Go'ni kompyuterimizga o'rnatganimizda birga keladigan kutubxonalar (packages) bilan ishladik. Masalan, fmt, math kabi standart kutubxonalarni misol qilib keltirish mumkin. Ushbu kutubxonalar oldindan yozilib, Go'ning manba kodiga qo'shilgan.

Ba'zan duch keladigan muammolarni hal qilishda Go'ning standart kutubxonalari yetarli bo'lmasligi mumkin. Bunday holatlarda boshqa dasturchilar tomonidan yozilgan va Go kutubxonalari ro'yxatiga qo'shilgan tashqi paketlardan foydalanishimiz kerak bo'ladi. Goning kutubxonalari https://pkg.go.dev/ bazasida saqlanadi.

Tashqi kutubxonalarni o‘rnatish

Go dasturida tashqi kutubxonalarni boshqarish va o‘rnatish uchun Go modules tizimidan foydalaniladi. Tashqi kutubxonani loyihaga qo‘shish uchun quyidagi buyruqdan foydalanish mumkin:

go get github.com/user/package
go get dan so'ng kutubxona nomi kiritiladi. Bu buyruq ishlashi uchun avval Go modul yaratishimiz kerak bo'ladi, quyidagi buruq bilan amalga oshiriladi:

go mod init loyiha_nomi

Yuqoridagi buyruq ishga tushuriliganidan so'ng go.mod fayl hosil bo'ladi. Ushbu fayl loyiha nomini hamda loyiha ishga tushirilgan Go versiyasini o'zida saqlaydi.

go.mod
module loyiha_nomi

go 1.22.1

Endi esa go get buyrug'i bilan web apilar ishlab chiqish uchun mo'ljallangan Gin kutubxonasini o'rnatib ko'ramiz.

go get github.com/gin-gonic/gin

Bu buyruq gin-gonic veb-freyvorkini yuklab olib, go.mod va go.sum fayllariga qo‘shadi. Agar go.sum bo'lmasa yangi yaratiladi. go.sum fayli go get yordamida yuklab olingan barcha bog‘liqliklar (dependencies) ning xesh (checksum) qiymatlarini saqlaydi. go.sum loyihada ishlatilgan bog‘liqliklar to‘g‘ri yuklashi va jamoa a’zolari yoki serverlar bir xil bog‘liqliklarni yuklab olishi uchun xizmat qiladi.

Yuklab olingan kutubxonadan foydalanish uchun, loyihaga quyidagicha qo'shish(import qilish) kerak bo'ladi.

import "github.com/gin-gonic/gin"

Odatda loyihaga qanday qo'shish kerakligi kutubxona hujjatida mavjud bo'ladi.