layout di directory di un progetto Go-lang?

4

Sto solo scoprendo il go linguaggio di programmazione.

(FWIW, sono fluente in C ++, Ocaml, C, Common Lisp, Scheme, conosco bene Linux, e ho progettato e implementato GCC MELT ; sto valutando la possibilità di riscrivere alcuni monitor MELT in Go, ma non l'ho ancora deciso)

Sono un po 'confuso riguardo al layout richiesto di alcuni workspace Go. Sono ancora in disaccordo con la nozione di pacchetti in Go (sembrano simili ai moduli di Ocaml) e le interfacce in Go (assomigliano alle firme di Ocaml o ai tipi di modulo).

Il How To Write Go Code del documento menziona sia un pkg/ che una sottodirectory src/ obbligatoria , ma l'esempio Oh shell di Michael Maccanis non ha alcun src/ e io ero ancora in grado di costruirlo usando

 go get github.com/michaelmacinnis/oh

comando menzionato in suo README.md . Perché (e come) funziona (senza src/ ) ?

Se ciò è importante, sto usando go1.8rc2 su Linux / amd-64 (Debian / Sid). Sto provando Go adesso (e non ho esaminato prima) perché Vai 1.8 (programmato prima della primavera 2017) dovrebbe avere i plugin e queste sono una caratteristica essenziale per me.

PS. Ho letto (e ho apprezzato) il Vai al programmatore C ++ wiki; ma potrei mancare il Go per il programmatore Ocaml equivalente.

    
posta Basile Starynkevitch 24.01.2017 - 16:19
fonte

1 risposta

1

Perché quando vai a prendere qualcosa, si trova sotto $GOPATH/src , nelle rispettive cartelle, a seconda di cosa importi. Il repository è github.com/michaelmacinnis/oh , quindi è clonato a $GOPATH/src/github.com/michaelmacinnis/oh . In pkg, $GOPATH/pkg/github.com/michaelmacinnis/oh , gli oggetti condivisi compilati per la tua piattaforma risiedono e vengono riutilizzati per ulteriori compilazioni da altri pacchetti, se i pacchetti sorgente non vengono modificati.

In breve, il codice dovrebbe essere in $GOPATH/src/path/to/repo/code/etc/hi , quindi quando vai a prendere, mette /path/to/repo/code/etc/hi a $GOPATH/src , è come vanno risolti i pacchetti.

    
risposta data 26.01.2017 - 19:23
fonte

Leggi altre domande sui tag