जब हम वास्तव में गो मानक पुस्तकालय के स्रोत कोड की जांच करते हैं, तो हम देख सकते हैं कि gotoवास्तव में कहां लागू होते हैं।
उदाहरण के लिए, में math/gamma.goफ़ाइल, बयान का इस्तेमाल किया है :goto
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)
}
gotoइस मामले में सिर्फ नियंत्रण प्रवाह के लिए इस्तेमाल किया एक और (बुलियन) चर, अंत में शुरू करने के लिए जाँच की से हमें बचाता है। इस मामले में , gotoकथन वास्तव में कोड को पढ़ने और आसान पालन करने के लिए बेहतर बनाता है ( gotoआपके द्वारा बताए गए तर्क के विपरीत )।
यह भी ध्यान दें, कि gotoकथन का बहुत विशिष्ट उपयोग-मामला है। गोटो पर भाषा विनिर्देश कहा गया है कि यह खत्म हो गया दायरे में आने से चर कूद नहीं हो सकता है (घोषित किया गया), और यह अन्य (code-) ब्लॉक में कूद नहीं कर सकते।