Sto cercando di creare una semplice calcolatrice in Go. Lo sto progettando in modo tale che io possa prima costruire un'interfaccia a riga di comando e facilmente passare un'interfaccia GUI. La posizione del progetto è $GOPATH/src/gocalc
(tutti i percorsi qui di seguito sono relativi alla posizione del progetto). La logica dell'interfaccia della riga di comando è memorizzata in un file gocalc.go
. La logica della calcolatrice è memorizzata nei file calcfns/calcfns.go
e operations/operations.go
. Tutti i file hanno nomi dei pacchetti identici a loro nome (estensione sans) ad eccezione del programma principale, gocalc.go
, che è nelle package main
Struttura pacchetto pacchetto con pacchetti figlio/sottoreport
calcfns.go
importazioni operations.go
via import "gocalc/operations"
; gocalc.go
importazioni calcfns.go
via import "gocalc/calcfns"
Per riassumere:
$GOPATH/src/gocalc/
gocalc.go
package main
import "gocalc/calcfns"
calcfns/
calcfns.go
package calcfns
import "gocalc/operations"
operations/
operations.go
package operations
Quando provo ad go build operations
(dal dir del progetto), ho la risposta: can't load package: package operations: import "operations": cannot find package
Quando provo go build gocalc/operations
, ottengo can't load package: package gocalc/operations: import "gocalc/operations": cannot find package
Quando provo go build operations/operations.go
, compila bene
Quando provo a go build calcfns
o go build gocalc/calcfns
, ricevo i messaggi can't load package...
, simili a quelli delle operazioni; tuttavia, quando provo a costruire calcfns/calcfns.go
soffoca sulla dichiarazione di importazione: import "gocalc/operations": cannot find package
Infine, quando provo go build .
dal dir progetto, soffoca simile al precedente paragrafo: import "gocalc/calcfns": cannot find package
Come devo strutturare il mio bambino pacchetti e/o dichiarazioni di importazione in modo tale che go build
non avrà esito negativo?
No, 'operations' non era il tentativo di importare in sé. ;) Ma il tuo "go env" mi ha mostrato che ho usato 'GOPATH = $ HOME/Projects/Go' invece di esportare GOPATH = $ HOME/Projects/Go', che era il vero colpevole. È interessante notare che 'echo $ GOPATH' produce ancora" '[abs path to ~]/Projects/Go'"; tuttavia, 'go env' mostra' GOPATH = "" 'o alcuni di questi. Grazie per il suggerimento. +1 – weberc2