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
Barbara Streisandasal
2024-12-06 16:28:13961semak imbas

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

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

package main

import (
    "../myproject/a"
)

func main() {
    a.Hello()
}

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

package a

import (
    "fmt"
)

func Hello() {
    fmt.Println("hello from a")
}

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

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!

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