الحالة 1
بسبب خطأ في تضمين الدوال (استدعاء الدالة foo() مُضمَّن هنا)، مع إصدارات سلسلة أدوات Go السابقة لـ v1.23، يطبع البرنامج التالي 1 0، لكن ينبغي أن يطبع 1 1 وفق القواعد المحددة في مواصفة Go.
تم إصلاح الخطأ منذ سلسلة أدوات Go v1.23.
package main
var x = 0
var a = foo()
var b = x
func foo() int {
x++
return x
}
func main() {
println(a, b)
}
الحالة 2
بسبب خطأ في تحسين المصرِّف، مع إصدارات سلسلة أدوات Go السابقة لـ v1.22، يطبع البرنامج التالي true، لكن ينبغي أن يطبع false وفق القواعد المحددة في مواصفة Go.
تم إصلاح الخطأ منذ سلسلة أدوات Go v1.22.
package main
var _ = func() int {
a = false
return 0
}()
var a = true
var b = a
func main() {
println(b)
}
الحالة 3
بسبب خطأ في المصرِّف، مع إصدارات سلسلة أدوات Go السابقة لـ v1.12، يطبع البرنامج التالي 5 4، لكن ينبغي أن يطبع 4 5 وفق القواعد المحددة في مواصفة Go.
تم إصلاح الخطأ منذ سلسلة أدوات Go v1.13.
package main
var (
a = c
b = f()
c = f()
d = 3
)
func f() int {
d++
return d
}
func main() {
println(b, c)
}