Bir go modül dosyası (go.mod) içinde "go" sürüm yönergesini kullanmanın etkileri nelerdir?


11

Aşağıdaki go.mod dosyası verildiğinde:

module foo

go 1.12

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

Bu ne anlama geliyor go 1.12? fooModülün Go'nun başka herhangi bir sürümüne göre derlenmesini engelliyor mu ? Yoksa sadece fooönerilen / zorunlu Go sürümünün bir göstergesi mi? Bu, yeni bir go sürümü her yayınlandığında (6 ayda bir) güncellememiz gereken bir yönerge mi?



1
Ayrıca: golang.org/cmd/go/#hdr-The_go_mod_file : go yönergesi ile ayarlanan beklenen dil sürümü, modülü derlerken hangi dil özelliklerinin kullanılabileceğini belirler. Bu sürümde kullanılabilen dil özellikleri kullanılabilir. Önceki sürümlerde kaldırılan veya sonraki sürümlerde eklenen dil özellikleri kullanılamaz. Dil sürümünün, kullanılmakta olan Git sürümü tarafından belirlenen oluşturma etiketlerini etkilemediğini unutmayın.
icza

Yanıtlar:


5

Gerekli minimum Go Sürümü çizgileri boyunca düşünülmelidir. Go'nun aynı veya daha yüksek bir sürümüyle oluşturursanız, bunların tümü Go 1 uyumluluk sözünün vaat ettiği gibi iyi olmalıdır . Daha düşük bir sürümle derlerseniz derleme başarısız olursa bir hata mesajı görüntülenir:

Bir go.mod dosyasındaki go yönergesi artık bu modül içindeki dosyalar tarafından kullanılan dilin sürümünü gösterir. Mevcut bir sürüm yoksa mevcut sürüme (go 1.12) ayarlanır. Bir modülün go yönergesi kullanılan araç zincirinden daha yeni bir sürüm belirtirse, go komutu paketleri ne olursa olsun oluşturmaya çalışır ve yalnızca bu derleme başarısız olursa uyuşmazlığı not eder. Go 1.12 Sürüm Notları

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.