Rumah >pembangunan bahagian belakang >Golang >Satu artikel mengajar anda cara menggunakan Modul bahasa Go

Satu artikel mengajar anda cara menggunakan Modul bahasa Go

Go语言进阶学习
Go语言进阶学习ke hadapan
2023-07-20 15:55:061497semak imbas
Kata Pengantar

go moudules ialah alat pengurusan pakej untuk Go Ia disediakan secara rasmi dan agak boleh dipercayai.

boleh difahami sebagai persekitaran maya Python, atau pakar Java, atau komposer PHP.

Masalah penting yang diselesaikannya ialah masalah kekacauan pengurusan pakej.

Apa pun, gunakan sahaja dan itu sahaja yang baik dan tiada yang buruk. Konfigurasi (jangan risau) tetapan diperlukan.


Apakah bezanya dengan direct go get tradisional

Apabila modul go tidak digunakan, kami terus go getgo get下载的包,会默认放在%GOPATH%/src目录下。

Satu artikel mengajar anda cara menggunakan Modul bahasa Go

启用go modules后,包都会下载到%GOPATH%/pkg/modPakej yang dimuat turun akan diletakkan dalam %GOPATH%/src

direktori.

Satu artikel mengajar anda cara menggunakan Modul bahasa Go

Satu artikel mengajar anda cara menggunakan Modul bahasa Go

Selepas mendayakan modul go, pakej Akan dimuat turun%GOPATH%/pkg/mod

folder.

🎜🎜🎜🎜 dan ia akan mempunyai nombor versi, yang pada asasnya menyelesaikan masalah pergantungan sepenuhnya. 🎜🎜🎜🎜🎜🎜🎜

开始使用

创建go.mod文件

go.modgo.mod文件相当于requirement.txt文件,里面会放一些所需要的依赖包。


开始使用

我创建了一个gomod-demo文件夹。

Satu artikel mengajar anda cara menggunakan Modul bahasa Go

并且CMD文件相当于requirement.txt

🎜文件,里面会放一些所需要的依赖包。🎜🎜🎜🎜
"🎜3🎜="m3" cid "break-after: elak-halaman;break-inside: avoid;anak yatim: 4;font-size: 1.5em;margin-top: 1rem;margin-bottom: 1rem;font-weight: bold;line-height: 1.43; kursor: teks;ruang-putih: pra-bungkus;font-family: "Open Sans", "Clear Sans", "Helvetica Neue", Helvetica, Arial, sans-serif;text-align: start;">🎜开始使用🎜🎜

🎜我创建了一个🎜🎜gomod-demo🎜🎜文件夹。🎜🎜

Satu artikel mengajar anda cara menggunakan Modul bahasa Go🎜🎜

🎜并且🎜🎜CMD🎜🎜进入此文件夹里面。🎜🎜

Satu artikel mengajar anda cara menggunakan Modul bahasa Go

执行命令go mod init gomod-demogo mod init gomod-demo

后面这个gomod-demo可以随便写,建议和文件夹名字一样。

Satu artikel mengajar anda cara menggunakan Modul bahasa Go

成功后,文件夹下会多了一个go.mod文件,代表成功。

Satu artikel mengajar anda cara menggunakan Modul bahasa Go

我用Goland打开这个gomod-demo

后面这个

Satu artikel mengajar anda cara menggunakan Modul bahasa Gogomod-demo

🎜可以随便写,建议和文件夹名字一样。🎜🎜

Satu artikel mengajar anda cara menggunakan Modul bahasa Go🎜

成功后,文件夹下会多了一个🎜go.mod🎜文件,代表成功。🎜🎜

Satu artikel mengajar anda cara menggunakan Modul bahasa Go🎜🎜

🎜我用Goland打开这个🎜🎜gomod-demo🎜🎜文件夹。🎜🎜🎜🎜🎜

perihalan fail go.mod

  1. modul: nama modul.

  2. memerlukan: senarai pakej pergantungan dan versi.

  3. kecualikan: larang senarai pakej bergantung (hanya berkuat kuasa apabila modul semasa adalah modul utama).

  4. ganti: Gantikan senarai pakej kebergantungan (hanya berkuat kuasa apabila modul semasa adalah modul utama).

Sudah tentu, pada dasarnya kita tidak perlu menyentuh ini, semuanya diubah suai melalui arahan atau IDE.


Mudah digunakan

Sebagai contoh, saya perlu menggunakan xstringsxstrings 包。

github地址:https://github.com/huandu/xstrings pakej.

alamat github:

https://github.com/huandu/xstrings

.

Satu artikel mengajar anda cara menggunakan Modul bahasa Go

🎜Anda perlu melaksanakan arahan ini untuk memasang pakej ini. 🎜🎜🎜🎜🎜

执行下载命令。

Satu artikel mengajar anda cara menggunakan Modul bahasa Go

go.mod文件会自动添加一个依赖包。

Satu artikel mengajar anda cara menggunakan Modul bahasa Go

代码:

package main

import (
    "fmt"
    "github.com/huandu/xstrings"
)

func main() {
    s := "heheh ADSL附近"
    center := xstrings.Count(s, "h")
    fmt.Println(center)
}

go连接Mysql

github文档如下。

Satu artikel mengajar anda cara menggunakan Modul bahasa Go

执行下载命令 go get -u github.com/go-sql-driver/mysql

Satu artikel mengajar anda cara menggunakan Modul bahasa Go

go.mod文件如下。

Satu artikel mengajar anda cara menggunakan Modul bahasa Go

代码:

package main

import (
    "database/sql"
    _ "github.com/go-sql-driver/mysql"
    "time"
)

func main() {
    //s := "heheh ADSL附近"
    //center := xstrings.Count(s, "h")
    //fmt.Println(center)
    db, err := sql.Open("mysql", "user:password@/dbname")
    if err != nil {
        panic(err)
}
    // See "Important settings" section.
    db.SetConnMaxLifetime(time.Minute * 3)
    db.SetMaxOpenConns(10)
    db.SetMaxIdleConns(10)
}

可能出现的异常

如果使用go get 第三方包时,goland无法导入,或者报错,或者没有Go Modules

Satu artikel mengajar anda cara menggunakan Modul bahasa Go

项目目录下,使用go mod download下载一下,基本可以解决问题,只要有Go Modules,就代表没问题。

Satu artikel mengajar anda cara menggunakan Modul bahasa Go

如果还是没有Go Modules,在Goland中settings->Go->GoModules(vgo)

Satu artikel mengajar anda cara menggunakan Modul bahasa Go

go mod所有命令

在当前文件夹下初始化一个新的 module,创建 go.mod 文件:go mod init name
拉取缺少的模块,移除不用的模块:go mod tidy
将依赖复制到 vendor 下:go mod vendor
下载依赖:go mod download
检验依赖:go mod verify
显示模块依赖图:go mod graph
解释为什么需要依赖:go mod why
编辑 go.mod 文件:go eidt
查看命令列表:go mod
查看命令帮助文档:go help mod

Atas ialah kandungan terperinci Satu artikel mengajar anda cara menggunakan Modul bahasa Go. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Artikel ini dikembalikan pada:Go语言进阶学习. Jika ada pelanggaran, sila hubungi admin@php.cn Padam