Rumah > pembangunan bahagian belakang > Golang > Bagaimanakah saya boleh memanggil fungsi pakej dalam Go tanpa menggunakan awalan pakej?

Bagaimanakah saya boleh memanggil fungsi pakej dalam Go tanpa menggunakan awalan pakej?

Barbara Streisand
Lepaskan: 2024-11-02 03:02:30
asal
589 orang telah melayarinya

How can I call a package function in Go without using the package prefix?

Memanfaatkan Fungsi Pakej Tanpa Awalan Pakej

Dalam Go, mengimport pakej dengan berkesan menyalin pengecam yang dieksport ke dalam skop pakej pengimportan. Walau bagaimanapun, terdapat kes di mana seseorang mungkin ingin mengakses fungsi pakej tanpa menggunakan nama pakej mereka sebagai awalan. Soalan ini meneroka kaedah yang berbeza untuk mencapai matlamat ini.

Satu pendekatan ialah teknik "import titik". Spesifikasi Go menyatakan bahawa menggunakan noktah (.) tanpa nama pakej mengimport semua pengecam yang dieksport daripada pakej tersebut ke dalam skop fail pakej semasa. Ini membenarkan akses terus kepada fungsi yang diimport tanpa awalan.

<code class="go">package main

import . "fmt" // import all exported identifiers from "fmt"

func main() {
    Println("hey there")
}</code>
Salin selepas log masuk

Walau bagaimanapun, teknik ini tidak digalakkan dalam komuniti Go kerana ia boleh menjadikan kod lebih sukar dibaca dengan mengaburkan sumber pengecam.

Sebagai alternatif, seseorang boleh mengisytiharkan pembolehubah peringkat pakej yang merujuk kepada fungsi yang diingini. Pendekatan ini melibatkan pengimportan pakej dan mengisytiharkan pembolehubah yang memegang rujukan kepada fungsi.

<code class="go">package main

import (
    "fmt"
)

var Println = fmt.Println // declare a package-level variable referencing fmt.Println

func main() {
    Println("Hello, playground")
}</code>
Salin selepas log masuk

Akhir sekali, jenis aliasing boleh digunakan untuk merujuk kepada jenis yang diisytiharkan dalam pakej yang diimport.

<code class="go">package main

import (
    "fmt"
)

type ScanState = fmt.ScanState // type alias fmt.ScanState

func main() {
    // use ScanState as a type without the "fmt." prefix
}</code>
Salin selepas log masuk

Walaupun kaedah ini menyediakan cara untuk mengelakkan awalan nama pakej semasa menggunakan fungsi, adalah penting untuk ambil perhatian bahawa komuniti Go secara amnya menggalakkan penamaan eksplisit dan mengelakkan import titik.

Atas ialah kandungan terperinci Bagaimanakah saya boleh memanggil fungsi pakej dalam Go tanpa menggunakan awalan pakej?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan