Non importa.
Separare un pacchetto in più file sorgente è qualcosa per te, per organizzare meglio il tuo codice. Ma per il compilatore Go non ha importanza. Se hai un identificatore non esportato in un file sorgente, puoi usarlo nell'altro file sorgente (stesso pacchetto ovviamente) senza alcun preavviso (come import
). Ciò che conta è che il tuo pacchetto abbia una dipendenza dall'altro pacchetto.
Si noti che influenza l'efficienza della compilazione nel minimo modo: il compilatore dovrà elaborare più file, creare più strutture di dati interne (richieste solo per la compilazione), elaborare le stesse sezioni (ad esempio import
) più volte. Ma questo non dovrebbe mai influire sul tuo giudizio di scegliere 1 file su più punti. Solo alcuni numeri inventati per aiutarti a comprenderlo: importa se il tuo pacchetto con 1 file sorgente viene compilato in 100 ms o richiede 100,1 ms se è suddiviso in 5 file? No, ovviamente.
Andando oltre, il tempo di compilazione non dovrebbe essere un fattore anche se è molto più grande (come 1 sec vs 2 sec). Il tempo di compilazione e l'efficienza del tempo di esecuzione sono 2 cose diverse, il secondo è quello che dovrebbe interessarti.