Quali sono le implicazioni dell'utilizzo della direttiva versione "go" all'interno di un file del modulo go (go.mod)


11

Dato il seguente file go.mod:

module foo

go 1.12

require (
    github.com/bar/baz v1.0.0
    github.com/rat/cat v1.0.0
)

Cosa go 1.12indica? Impedisce la compilazione del foomodulo rispetto a qualsiasi altra versione di Go? O è semplicemente un indicatore della fooversione Go consigliata / richiesta? È una direttiva che dovremmo aggiornare ogni volta che viene rilasciata una nuova versione di go (ogni 6 mesi)?



1
Inoltre: golang.org/cmd/go/#hdr-The_go_mod_file : la versione della lingua prevista, impostata dalla direttiva go, determina quali funzioni della lingua sono disponibili durante la compilazione del modulo. Le funzionalità della lingua disponibili in quella versione saranno disponibili per l'uso. Le funzionalità della lingua rimosse nelle versioni precedenti o aggiunte nelle versioni successive non saranno disponibili. Si noti che la versione della lingua non influisce sui tag di compilazione, che sono determinati dalla versione Go utilizzata.
Icza,

Risposte:


5

Dovrebbe essere considerato sulla falsariga di una versione Go minima richiesta. Se costruisci con la stessa versione o una versione successiva di Go, tutto dovrebbe andare bene come promesso dalla promessa di compatibilità di Go 1 . Se compili con una versione precedente, verrà visualizzato un messaggio di errore se la compilazione non riesce:

La direttiva go in un file go.mod ora indica la versione della lingua utilizzata dai file all'interno di quel modulo. Verrà impostato sulla versione corrente (vai 1.12) se non è presente alcuna versione esistente. Se la direttiva go per un modulo specifica una versione più recente della toolchain in uso, il comando go tenterà di compilare i pacchetti a prescindere e noterà la mancata corrispondenza solo se tale build non riesce. Vai alla Note di rilascio 1.12

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.