Rumah > pembangunan bahagian belakang > Golang > Bolehkah saya Menggabungkan Pustaka Go dan CLI dalam Direktori yang Sama?

Bolehkah saya Menggabungkan Pustaka Go dan CLI dalam Direktori yang Sama?

Barbara Streisand
Lepaskan: 2024-12-02 20:09:15
asal
679 orang telah melayarinya

Can I Bundle a Go Library and CLI in the Same Directory?

Bolehkah Anda Menggabungkan Pustaka dan CLI dalam Direktori Yang Sama?

Mempunyai direktori dengan pakej berasingan untuk perpustakaan (fungsi yang dieksport) dan antara muka baris arahan (boleh laku CLI) menimbulkan persoalan sama ada ia praktikal. Isu timbul apabila pengkompil go memerlukan kedua-dua pakej dengan fungsi "utama" untuk pelaksanaan program dan perpustakaan dengan fungsinya.

Masalah: Pelbagai Pakej

Seperti yang ditunjukkan oleh contoh yang diberikan, jika kedua-dua pakej "utama" dan perpustakaan wujud bersama dalam direktori yang sama, pengkompil go mengadu tentang mencari berbilang pakej dalam yang sama direktori.

Penyelesaian: Pakej Bersarang

Daripada mengekalkan pakej dalam direktori yang sama, penyelesaian mudah ialah mencipta subdirektori baharu dalam direktori induk ke rumah sama ada perpustakaan atau pakej CLI. Ingat untuk mengemas kini import anda untuk menggambarkan lokasi baharu pakej.

Contoh dengan Pakej Bersarang

Dalam contoh yang disemak di bawah, pakej "a" dialihkan ke subdirektori baharu "a" dalam direktori "so-multipack":

so-multipack/
    a/
        a.go
    main.go
Salin selepas log masuk

Dikemas kini main.go

package main

import "../so-multipack/a"

func main() {
    a.Hello()
}
Salin selepas log masuk

Dikemas kini a/a.go

package a

import "fmt"

func Hello() {
    fmt.Println("hello from a")
}
Salin selepas log masuk

Kompilasi Berjaya

Menggunakan struktur direktori yang dikemas kini, arahan go kini dijalankan berjaya:

go run main.go
# Output: hello from a
go build
# Creates a "so-multipack" executable
Salin selepas log masuk

Dengan menyarangkan pakej dalam direktori induk yang sama, kami boleh berjaya menampung kedua-dua pustaka dan CLI boleh laku.

Atas ialah kandungan terperinci Bolehkah saya Menggabungkan Pustaka Go dan CLI dalam Direktori yang Sama?. 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