Apakah pakej dalam bahasa Go

青灯夜游
Lepaskan: 2023-01-11 10:19:09
asal
1563 orang telah melayarinya

Pakej ialah koleksi berbilang kod sumber Go dan merupakan penyelesaian penggunaan semula kod lanjutan. Pakej bahasa Go menggunakan bentuk organisasi pepohon direktori Secara amnya, nama pakej ialah nama direktori di mana fail sumbernya berada dalam direktori yang sangat dalam laluan direktori, tetapi pakej dirujuk secara amnya menggunakan rujukan laluan penuh.

Apakah pakej dalam bahasa Go

Persekitaran pengendalian tutorial ini: sistem Windows 7, GO versi 1.18, komputer Dell G3.

Bahasa Go menggunakan pakej untuk menyusun kod sumber Satu pakej ialah koleksi berbilang kod sumber Go dan merupakan penyelesaian penggunaan semula kod lanjutan. Bahasa Go memberi kami banyak pakej terbina dalam, seperti fmt, os, io, dsb.

Pakej dan folder di Golang mempunyai surat-menyurat satu dengan satu dan mesti dibuat dalam direktori GOPATH sebelum ia boleh digunakan. Jika pakej di Golang perlu merujuk kandungan pakej lain, ia mesti diimport menggunakan kata kunci import sebelum boleh digunakan.

Mana-mana fail kod sumber mestilah tergolong dalam pakej tertentu Pada masa yang sama, baris pertama kod yang sah dalam fail kod sumber mestilah pernyataan package pacakgeName, di mana anda mengisytiharkan pakej yang anda ada. .

Konsep asas pakej

Pakej bahasa Go disusun dalam pepohon direktori Secara amnya, nama pakej ialah direktori di mana ia fail sumber terletak walaupun bahasa Go tidak mewajibkan nama pakej mesti mempunyai nama yang sama dengan nama direktori di mana ia berada, nama pakej masih disyorkan untuk mempunyai nama yang sama dengan direktori di mana ia berada, supaya strukturnya lebih jelas.

Pakej boleh ditakrifkan dalam direktori yang sangat mendalam Takrif nama pakej tidak termasuk laluan direktori, tetapi laluan penuh biasanya digunakan semasa merujuk pakej. Contohnya, tentukan pakej c di bawah GOPATH/src/a/b/. Dalam kod sumber pakej c, anda hanya perlu mengisytiharkannya sebagai package c bukannya package a/b/c, tetapi apabila mengimport pakej c, anda perlu membawa laluan, seperti import "a/b/c".

Idiom penggunaan pakej:

  • Nama pakej biasanya menggunakan huruf kecil, menggunakan nama yang pendek dan bermakna.

  • Nama pakej secara amnya mempunyai nama yang sama dengan direktori di mana ia berada, atau ia boleh berbeza Nama pakej tidak boleh mengandungi simbol khas seperti -. Pakej

  • biasanya menggunakan nama domain sebagai nama direktori, yang memastikan keunikan nama pakej Contohnya, pakej projek GitHub biasanya diletakkan dalam direktori GOPATH/src/github.com/userName/projectName.

  • Pakej yang dinamakan utama ialah pakej kemasukan aplikasi apabila menyusun fail kod sumber yang tidak mengandungi pakej utama, anda tidak akan mendapat fail boleh laku.

  • Semua fail kod sumber dalam folder hanya boleh dimiliki oleh pakej yang sama dan fail kod sumber kepunyaan pakej yang sama tidak boleh diletakkan dalam berbilang folder.

Import pakej

Untuk merujuk kandungan pakej lain dalam kod, anda perlu menggunakan kata kunci import untuk mengimport. Sintaks khusus adalah seperti berikut:

import "包的路径"
Salin selepas log masuk

Nota:

  • Pernyataan import biasanya diletakkan di bawah pernyataan pengisytiharan pakej pada permulaan fail kod sumber;

  • Nama pakej yang diimport perlu dibalut dengan petikan berganda; untuk memisahkan laluan.

  • GOPATH/src/

    Laluan import pakej

Terdapat dua cara untuk menulis laluan rujukan pakej, iaitu import laluan penuh dan relatif Import laluan. Import laluan penuh

Laluan mutlak pakej ialah laluan storan pakej selepas GOROOT/src/ atau GOPATH/src/, seperti ditunjukkan di bawah:

Maksud kod di atas adalah seperti berikut:

import "lab/test"
import "database/sql/driver"
import "database/sql"
Salin selepas log masuk
Pakej ujian ialah pakej tersuai, dan kod sumbernya terletak di GOPATH/src/ direktori makmal/ujian;

< Kod sumber 🎜>
    pakej pemacu terletak dalam direktori GOROOT/src/database/sql/driver;
  • pakej sql terletak dalam direktori GOROOT/src/database/sql.

  • Import laluan relatif
  • Laluan relatif hanya boleh digunakan untuk mengimport pakej di bawah GOPATH dan pakej standard hanya boleh diimport menggunakan laluan penuh.

  • Sebagai contoh, laluan pakej a ialah GOPATH/src/lab/a, dan laluan pakej b ialah GOPATH/src/lab/b Jika anda mengimport pakej a dalam pakej b, anda boleh gunakan laluan relatif untuk mengimportnya. Contohnya adalah seperti berikut:

Sudah tentu, anda juga boleh menggunakan import laluan penuh di atas, seperti yang ditunjukkan di bawah:

Pemuatan pakej

// 相对路径导入
import "../a"
Salin selepas log masuk

Melalui siri kajian terdahulu, saya percaya semua orang mempunyai pemahaman umum tentang proses permulaan dan pemuatan program Go Sebelum melaksanakan fungsi utama pakej utama, program but Go mula-mula akan memulakan keseluruhan pakej program. Keseluruhan proses pelaksanaan ditunjukkan dalam rajah di bawah.
// 全路径导入
import "lab/a"
Salin selepas log masuk

Gambar: Permulaan pakej Go Permulaan pakej bahasa Go mempunyai ciri-ciri berikut:

  • Program permulaan pakej bermula daripada pakej yang dirujuk oleh fungsi utama, mencari rujukan pakej langkah demi langkah, sehingga ia menemui pakej yang tidak merujuk pakej lain, dan akhirnya menghasilkan graf akiklik terarah rujukan pakej.

  • Pengkompil Go akan menukar graf akiklik terarah kepada pokok, dan kemudian memulakan pakej lapisan demi lapisan bermula dari nod daun pokok.

  • Proses pemulaan pakej tunggal adalah seperti yang ditunjukkan dalam rajah di atas Pemalar dimulakan dahulu, kemudian pembolehubah global, dan akhirnya fungsi init pakej dilaksanakan.

Ringkasan penggunaan pakej Golang

Organisasi kod sumber bahasa Go menggunakan bentuk pakej. Fungsi utama bahasa Go hanya boleh dilaksanakan oleh sistem dalam pakej utama.

[Cadangan berkaitan: Pergi tutorial video, Pengajaran pengaturcaraan]

Atas ialah kandungan terperinci Apakah pakej dalam bahasa Go. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Label berkaitan:
sumber:php.cn
Kenyataan Laman Web ini
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
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan