Rumah > pembangunan bahagian belakang > Golang > Bolehkah Projek Go Mempunyai Kedua-dua Perpustakaan dan CLI dalam Direktori yang Sama?

Bolehkah Projek Go Mempunyai Kedua-dua Perpustakaan dan CLI dalam Direktori yang Sama?

Barbara Streisand
Lepaskan: 2024-12-06 16:28:13
asal
956 orang telah melayarinya

Can a Go Project Have Both a Library and a CLI in the Same Directory?

Bolehkah Dua Pakej Berada dalam Direktori Yang Sama?

Apabila membangunkan projek yang memerlukan kedua-dua perpustakaan dan antara muka baris perintah (CLI), ia adalah biasa untuk menghadapi konflik antara dua pakej yang sedia ada dalam direktori yang sama. Disebabkan oleh keperluan pengkompil Go untuk pakej bernama "utama" dengan "func main" sebagai titik masuk, adalah dianggap mustahil untuk mempunyai pakej berasingan untuk kedua-dua perpustakaan dan CLI.

Penyelesaian : Struktur Pakej Bersarang

Walau bagaimanapun, terdapat penyelesaian untuk isu ini dengan mengalihkan kedua-dua pakej ke dalam folder baharu dalam direktori yang sama dengan fail "main.go". Perkara utama ialah memastikan pakej baharu diimport dari laluan yang betul dalam "$GOPATH".

Contoh:

Pertimbangkan struktur direktori yang dikemas kini:

whatever.io/
    myproject/
        a/                # New folder
            a.go
        main.go
Salin selepas log masuk

Dalam "main.go", import pakej baharu daripada laluan bersarangnya:

package main

import (
    "../myproject/a"
)

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

In "a.go", tentukan fungsi untuk pustaka:

package a

import (
    "fmt"
)

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

Membina dan Menjalankan:

Kini, anda boleh membina dan menjalankan projek dengan jayanya:

go run main.go
# Prints "hello from a"

go build
# Creates the executable without errors
Salin selepas log masuk

Penyelesaian ini membolehkan anda mempunyai kedua-dua perpustakaan (pakej "a") dan CLI (pakej "utama") dalam direktori yang sama, menyelesaikan konflik yang disebabkan oleh mempunyai dua pakej dengan nama yang sama dalam direktori yang sama.

Atas ialah kandungan terperinci Bolehkah Projek Go Mempunyai Kedua-dua Perpustakaan 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