Cara Menstruktur Modul Golang dan Struktur Projek dengan Cara Baharu
Dalam sistem modul dikemas kini yang diperkenalkan dalam Go 1.11, pendekatan rujukan modul daripada direktori yang berbeza telah berkembang. Mari kita terokai cara untuk mencapai ini dengan cara baharu.
Cara Lama
Sebelum ini, modul perlu diletakkan dalam GOPATH untuk digunakan. Biasanya, folder telah dibuat dalam GOPATH untuk setiap projek. Segala-galanya dalam direktori "src" boleh diimport dan dieksport ke dalam perisian.
Sebagai contoh, pertimbangkan struktur projek berikut:
github.ibm.com/ └── Alessio-Savi └── GoLog-Viewer ├── conf ├── database ├── datastructure ├── GinProva.go ├── README.md ├── request └── resources
Untuk mengimport fail datastructure.go, pernyataan berikut boleh digunakan:
import( "github.ibm.com/Alessio-Savi/GoLog-Viewer/datastructure" )
Cara Baharu
Dengan pengenalan modul go, penggunaan GOPATH tidak lagi diperlukan. Sebaliknya, arahan 'go mod init' boleh digunakan untuk memulakan modul baharu. Ini menghasilkan dua fail: go.mod dan go.sum.
Fail go.mod menyenaraikan perpustakaan yang diperlukan dan kod Go luaran yang diperlukan untuk modul, manakala go.sum mengandungi cincangan perpustakaan tersebut.
Sebagai contoh, pertimbangkan pustaka GoGPUtils:
mkdir GoGPUtils cd $_ go mod init github.com/alessiosavi/GoGPUtils
Fail go.mod akan kelihatan seperti ini:
module github.com/alessiosavi/GoGPUtils go 1.13 require ( github.com/alessiosavi/ahocorasick v0.0.3 golang.org/x/tools v0.0.0-20191031220737-6d8f1af9ccc0 // indirect )
Untuk mengimport perpustakaan ahocorasick dalam modul, pernyataan berikut boleh digunakan:
import ( ahocorasick "github.com/alessiosavi/ahocorasick" )
Dalam senario contoh anda, untuk mengakses modul2 daripada modul1, anda perlu untuk memasukkan laluan ke modul2 dalam fail go.mod modul1. Contohnya:
require ( github.com/your-username/module2 v0.0.1 )
Atas ialah kandungan terperinci Bagaimana Menstrukturkan Modul dan Projek Go dengan Betul dalam Go 1.11 dan Beyond?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!