Rumah >pembangunan bahagian belakang >Golang >Bagaimanakah Saya Harus Menstrukturkan Pakej dan Import dalam Projek My Go?

Bagaimanakah Saya Harus Menstrukturkan Pakej dan Import dalam Projek My Go?

Patricia Arquette
Patricia Arquetteasal
2024-11-18 07:16:01515semak imbas

How Should I Structure Packages and Imports in My Go Project?

Meneroka Struktur Pakej Go: Konvensyen dan Amalan Terbaik

Struktur pakej Go memainkan peranan penting dalam mengatur dan mengurus kod dengan berkesan. Untuk menyelidiki prinsip dan konvensyen yang mengelilingi struktur pakej, mari kita periksa persediaan projek hipotesis dalam $GOPATH anda.

Pertimbangkan direktori projek berikut:

$GOPATH/
  src/
    github.com/
    username/
    projectname/
        main.go
        numbers/
          rational.go
          real.go
          complex.go

1. Fail 'package.go' - Salah Nama

Bertentangan dengan tanggapan salah, anda tidak memerlukan fail bernama package.go dalam setiap folder pakej. Go secara automatik menentukan direktori pakej sebagai pakejnya. Contohnya, fail dalam folder nombor semuanya tergolong dalam pakej nombor.

2. Mengimport Subpakej - Pendekatan yang Betul

Untuk mengimport fail rational.go, real.go dan complex.go ke dalam numbers.go, anda tidak seharusnya menggunakan import relatif. Sebaliknya, import keseluruhan pakej nombor menggunakan sintaks:

import "github.com/username/projectname/numbers"

3. Hierarki Pakej dan Pengisytiharan Jenis

Dalam pakej, anda boleh menentukan jenis dan fungsi. Dalam kes ini, anda boleh mengisytiharkan jenis Real dalam fail real.go, seperti yang ditunjukkan di bawah:

package numbers

type Real struct {
    Number float64
}

Dengan mengikuti konvensyen ini, anda boleh mengatur kod Go anda dengan berkesan dan meningkatkan kebolehbacaan dan kebolehselenggaraannya. Ingat, kuncinya ialah mengimport pakej, bukan fail individu dan mengelakkan daripada mencipta fail package.go yang tidak diperlukan.

Atas ialah kandungan terperinci Bagaimanakah Saya Harus Menstrukturkan Pakej dan Import dalam Projek My Go?. 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