যখন আমরা আসলে গো স্ট্যান্ডার্ড লাইব্রেরির উত্স কোডটি যাচাই করি, তখন আমরা দেখতে পাই যে 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-) ব্লক মধ্যে তিড়িং লাফ নাও করতে পারে।