Heim >Backend-Entwicklung >Golang >In einem Artikel erfahren Sie, wie Sie Go-Sprachmodule verwenden

In einem Artikel erfahren Sie, wie Sie Go-Sprachmodule verwenden

Go语言进阶学习
Go语言进阶学习nach vorne
2023-07-20 15:55:061496Durchsuche
Vorwort

go module ist ein Paketverwaltungstool für Go. Es wird offiziell bereitgestellt und ist relativ zuverlässig. Die Mindestvoraussetzung für die Go-Version ist 1.11+.

kann als virtuelle Umgebung von Python, als Maven von Java oder als Composer von PHP verstanden werden.

Das wesentliche Problem, das es löst, ist das Problem des Paketverwaltungschaos.

Wie auch immer, nutzen Sie es einfach und das war's. Es gibt nur gute Dinge und keine schlechten Dinge.


Konfiguration (keine Sorge)

GO111MODULE=off # 不适用modules功能
GO111MODULE=off #使用molules功能,不会去GOPATH下找依赖包, 1.11+版本默认开启
GO111MODULE=auto:Golang # Golang自己简则是不是使用modules功能

Aus dem obigen Befehl kann geschlossen werden, dass in Version 1.11+ standardmäßig Go-Module verwendet werden können und keine anderen Einstellungen erforderlich sind.


Was ist der Unterschied zwischen ihm und dem herkömmlichen direkten Go-Get?

Wenn Go-Module nicht verwendet werden, verwenden wir direkt go getgo get下载的包,会默认放在%GOPATH%/src目录下。

In einem Artikel erfahren Sie, wie Sie Go-Sprachmodule verwenden

启用go modules后,包都会下载到%GOPATH%/pkg/modDas heruntergeladene Paket wird in %GOPATH%/src

Verzeichnis.

In einem Artikel erfahren Sie, wie Sie Go-Sprachmodule verwenden

In einem Artikel erfahren Sie, wie Sie Go-Sprachmodule verwenden

Nach der Aktivierung der Go-Module wird die Paket Wird heruntergeladen%GOPATH%/pkg/mod

Ordner.

🎜🎜🎜🎜 und es wird eine Versionsnummer haben, was das Abhängigkeitsproblem im Grunde vollständig löst. 🎜🎜🎜🎜🎜🎜🎜

开始使用

创建go.mod文件

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


开始使用

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

In einem Artikel erfahren Sie, wie Sie Go-Sprachmodule verwenden

并且CMD文件相当于requirement.txt

🎜文件,里面会放一些所需要的依赖包。🎜🎜🎜🎜
🎜🎜

gomod-demo🎜🎜文件夹。🎜🎜

In einem Artikel erfahren Sie, wie Sie Go-Sprachmodule verwenden🎜🎜

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

In einem Artikel erfahren Sie, wie Sie Go-Sprachmodule verwenden

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

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

In einem Artikel erfahren Sie, wie Sie Go-Sprachmodule verwenden

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

In einem Artikel erfahren Sie, wie Sie Go-Sprachmodule verwenden

我用Goland打开这个gomod-demo

In einem Artikel erfahren Sie, wie Sie Go-Sprachmodule verwendengomod-demo

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

In einem Artikel erfahren Sie, wie Sie Go-Sprachmodule verwenden🎜

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

In einem Artikel erfahren Sie, wie Sie Go-Sprachmodule verwenden🎜🎜

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

go.mod-Dateibeschreibung

  1. Modul: Modulname.

  2. require: Liste und Version der Abhängigkeitspakete.

  3. exclude: Liste abhängiger Pakete verbieten (wird nur wirksam, wenn das aktuelle Modul das Hauptmodul ist).

  4. ersetzen: Ersetzen Sie die Liste der Abhängigkeitspakete (wird nur wirksam, wenn das aktuelle Modul das Hauptmodul ist).

Natürlich müssen wir diese grundsätzlich nicht anfassen, sie werden alle durch Befehle oder IDE geändert.


Einfach zu verwenden

Zum Beispiel muss ich einen xstringsxstrings 包。

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

https://github.com/huandu/xstrings

.

In einem Artikel erfahren Sie, wie Sie Go-Sprachmodule verwenden

🎜Sie müssen diesen Befehl ausführen, um dieses Paket zu installieren. 🎜🎜🎜🎜🎜

执行下载命令。

In einem Artikel erfahren Sie, wie Sie Go-Sprachmodule verwenden

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

In einem Artikel erfahren Sie, wie Sie Go-Sprachmodule verwenden

代码:

package main

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

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

go连接Mysql

github文档如下。

In einem Artikel erfahren Sie, wie Sie Go-Sprachmodule verwenden

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

In einem Artikel erfahren Sie, wie Sie Go-Sprachmodule verwenden

go.mod文件如下。

In einem Artikel erfahren Sie, wie Sie Go-Sprachmodule verwenden

代码:

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

In einem Artikel erfahren Sie, wie Sie Go-Sprachmodule verwenden

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

In einem Artikel erfahren Sie, wie Sie Go-Sprachmodule verwenden

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

In einem Artikel erfahren Sie, wie Sie Go-Sprachmodule verwenden

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

Das obige ist der detaillierte Inhalt vonIn einem Artikel erfahren Sie, wie Sie Go-Sprachmodule verwenden. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Dieser Artikel ist reproduziert unter:Go语言进阶学习. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen