Rumah >pembangunan bahagian belakang >Golang >Bagaimanakah Saya Merujuk Modul Go dari Luar GOPATH?

Bagaimanakah Saya Merujuk Modul Go dari Luar GOPATH?

Linda Hamilton
Linda Hamiltonasal
2024-11-27 20:27:15655semak imbas

How Do I Reference Go Modules from Outside the GOPATH?

Modul Rujukan daripada Direktori Bukan GOPATH

Pengenalan modul Go dalam Go 1.11 memperkenalkan perubahan dalam rujukan modul dan pakej daripada direktori bukan GOPATH.

Lama Cara

Secara tradisinya, modul Go diperlukan untuk berada dalam GOPATH. Modul dan pakej dalam direktori ini boleh diimport menggunakan sintaks berikut:

import (
    "github.com/username/modulename/subpackage"
)

Cara Baharu

Dengan modul Go, pendekatan ini telah berubah. Pakej kini boleh berada di luar GOPATH. Untuk merujuk pakej daripada direktori lain:

Memulakan Modul

Memulakan modul baharu menggunakan arahan go mod init:

go mod init github.com/username/modulename

Ini mencipta go.mod dan go .sum fail dalam direktori semasa.

Penyata Import

Gunakan import penyata kepada pakej rujukan daripada direktori lain. Sebagai contoh, jika Module2 terletak di /root/module2, dan mengandungi pakej bernama module2, pernyataan import dalam Modul1 ialah:

import (
    "github.com/username/module2"
)

Struktur Fail

Andaikan struktur fail berikut :

\root
└── module1
    ├── go.mod
    └── main.go

└── module2
    ├── go.mod
    └── module2.go

go.mod Fail

Modul1:

module github.com/username/module1

require (
    github.com/username/module2 v0.0.1
)

Modul2:

module github.com/username/module2

go 1.13

main.go (Modul1)

package main

import (
    "fmt"
    "github.com/username/module2"
)

func main() {
    fmt.Println(module2.Name())
}

modul2.go (Modul2)

package module2

import "fmt"

func Name() string {
    return "Module 2"
}

Dengan mengikuti langkah ini, anda boleh merujuk modul daripada direktori bukan GOPATH, membolehkan penggunaan semula kod dan modulariti dalam projek Go.

Atas ialah kandungan terperinci Bagaimanakah Saya Merujuk Modul Go dari Luar GOPATH?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn