Khi chúng tôi thực sự kiểm tra mã nguồn của thư viện tiêu chuẩn Go, chúng tôi có thể thấy những nơi gotochúng thực sự được áp dụng tốt.
Ví dụ, trong các math/gamma.gotập tin, các gototuyên bố là đã qua sử dụng :
for x < 0 {
if x > -1e-09 {
goto small
}
z = z / x
x = x + 1
}
for x < 2 {
if x < 1e-09 {
goto small
}
z = z / x
x = x + 1
}
if x == 2 {
return z
}
x = x - 2
p = (((((x*_gamP[0]+_gamP[1])*x+_gamP[2])*x+_gamP[3])*x+_gamP[4])*x+_gamP[5])*x + _gamP[6]
q = ((((((x*_gamQ[0]+_gamQ[1])*x+_gamQ[2])*x+_gamQ[3])*x+_gamQ[4])*x+_gamQ[5])*x+_gamQ[6])*x + _gamQ[7]
return z * p / q
small:
if x == 0 {
return Inf(1)
}
return z / ((1 + Euler*x) * x)
}
Trong gototrường hợp này, chúng ta không phải đưa vào một biến (boolean) khác chỉ được sử dụng cho luồng điều khiển, được kiểm tra ở cuối. Trong trường hợp này , gotocâu lệnh làm cho mã thực sự tốt hơn để đọc và dễ theo dõi hơn (hoàn toàn trái ngược với lập luận chống lại gotobạn đã đề cập).
Cũng lưu ý rằng gotocâu lệnh có một trường hợp sử dụng rất cụ thể. Đặc tả ngôn ngữ trên goto nói rằng nó có thể không nhảy qua các biến sắp vào phạm vi (đang được khai báo) và nó không thể nhảy vào các khối (mã-) khác.