گولانگ بلڈ ٹیگز کیسے شامل کریں۔

Gwlang Bl Ygz Kys Shaml Kry



Go میں بلڈ ٹیگز ایک طاقتور خصوصیت ہے جو ہمیں مخصوص تعمیراتی رکاوٹوں کی بنیاد پر تعمیراتی عمل کے دوران کسی خاص کوڈ کو مشروط طور پر شامل یا خارج کرنے کی اجازت دیتی ہے۔ یہ لچک ہمیں مختلف آپریٹنگ سسٹمز، آرکیٹیکچرز، یا ماحول سے متعلق دیگر تقاضوں کے لیے پلیٹ فارم کے لیے مخصوص تعمیرات بنانے کے قابل بناتی ہے۔ Build tags خاص تبصرے ہیں جو ایک سورس فائل کے شروع میں پیکج ڈیکلریشن کے بالکل اوپر شامل کیے جاتے ہیں۔ یہ ٹیگز گو بلڈ سسٹم کو ہدایات فراہم کرتے ہیں کہ تالیف کے عمل کے دوران اس فائل میں کوڈ کو کیسے ہینڈل کیا جائے۔

مثال 1: لینکس سسٹم کے لیے گولانگ بلڈ ٹیگ شامل کریں۔

لینکس آپریٹنگ سسٹم کو نشانہ بنانے کے لیے، ہم '// +build linux' بلڈ ٹیگ شامل کر سکتے ہیں۔

// لینکس بنائیں

// +بناؤ لینکس

پیکج مرکزی

درآمد 'fmt'

func مرکزی () {

ایف ایم ٹی . پرنٹ ایل این ( 'ہیلو لینکس سسٹم کی مثال' )

}

یہاں، ہم نے Go میں تعمیراتی رکاوٹیں سیٹ کی ہیں جو یہ بتاتی ہیں کہ کوڈ صرف اس صورت میں بنایا جانا چاہیے جب ٹارگٹ سسٹم لینکس ہو۔ اس کے بعد، ہم پیکیج کی وضاحت کرتے ہیں اور کوڈ کے لیے مطلوبہ بیان درآمد کرتے ہیں۔ پھر، ہم مین() طریقہ داخل کرتے ہیں جہاں ہم 'fmt' پیکیج سے 'Println' کال کا استعمال کرتے ہوئے پیغام کو پرنٹ کرتے ہیں۔







اس طرح، پیغام لینکس آپریٹنگ سسٹم کے لیے کامیابی کے ساتھ کنسول پر ظاہر ہوتا ہے:





مثال 2: ونڈوز سسٹم کے لیے گولانگ بلڈ ٹیگ شامل کریں۔

جب ہم صرف یہ چاہتے ہیں کہ کوڈ کو ونڈوز پلیٹ فارم پر عمل میں لایا جائے، تو ہم فائل کے شروع میں '// +build windows' بلڈ ٹیگ استعمال کرتے ہیں۔ اس سے، ہم اس بات کو یقینی بنا سکتے ہیں کہ کوڈ صرف اس وقت تعمیر میں شامل کیا گیا ہے جب ونڈوز مطلوبہ پلیٹ فارم ہو۔





// +بلڈ ونڈوز

پیکج مرکزی

درآمد 'fmt'

func مرکزی () {

ایف ایم ٹی . پرنٹ ایل این ( 'ہیلو، ونڈوز کی مثال!' )

}

یہاں، ہم اس بات کو یقینی بنانے کے لیے '// +build windows' کی تعمیر کا استعمال کرتے ہیں کہ کوڈ صرف ونڈوز پلیٹ فارم کے لیے تعمیر کرتے وقت مرتب اور عمل میں لایا جاتا ہے۔ اس کے بعد، ہم پیکج اور امپورٹ موڈیفائر کے ساتھ کوڈ کے لیے ضروری پیکیج شامل کرتے ہیں۔ اس کے بعد مین() فنکشن آتا ہے جو گولانگ میں ونڈو کے ٹیگز بناتے وقت اسٹیٹمنٹ پرنٹ کرنے کے لیے println() فنکشن کو استعمال کرتا ہے۔

جب ہم اس پروگرام کو ونڈوز سسٹم پر بناتے اور چلاتے ہیں، تو یہ 'ہیلو، ونڈوز مثال!' دکھاتا ہے۔ کنسول کو پیغام۔ نوٹ کریں کہ یہ پروگرام تعمیر کی رکاوٹ کی وجہ سے دوسرے آپریٹنگ سسٹمز پر نہیں بنایا جائے گا اور نہ ہی اس پر عمل کیا جائے گا۔



مثال 3: نان ونڈوز سسٹم کے لیے گولانگ بلڈ ٹیگ شامل کریں۔

اس کے برعکس، اگر ہم ونڈوز کے لیے تعمیر کرتے وقت کوڈ کو خارج کرنا چاہتے ہیں، تو آپ '!' استعمال کر سکتے ہیں۔ بلڈ ٹیگ کے ساتھ فجائیہ نشان۔

// +build !windows

پیکج مرکزی

درآمد 'fmt'

func مرکزی () {

ایف ایم ٹی . پرنٹ ایل این ( 'ہیلو، ونڈوز کے علاوہ!' )

}

یہاں، ہم ایک رکاوٹ کی ہدایت تیار کرتے ہیں جو اس بات کی نشاندہی کرتا ہے کہ کوڈ کو ونڈوز کے علاوہ کسی اور پلیٹ فارم پر بنایا جانا چاہیے اور اس پر عمل درآمد کیا جانا چاہیے۔ ونڈوز سے پہلے فجائیہ نشان (!) اس بات کی نشاندہی کرتا ہے کہ یہ کوڈ ونڈوز کے علاوہ تمام پلیٹ فارمز کے لیے شامل ہونا چاہیے۔ اس کے بعد، ہم پچھلے فنکشن کی طرح اسی پروگرام کے ساتھ آگے بڑھتے ہیں جہاں ہم سب سے پہلے پیکجز کو شامل کرتے ہیں اور main() فنکشن کو کال کرتے ہیں تاکہ اس پیغام کو انجام دیا جا سکے جو println() فنکشن کے اندر گزرا ہے۔

اس طرح، آؤٹ پٹ آپریٹنگ سسٹم کنسولز پر پیغام تیار کرتا ہے۔ ذہن میں رکھیں کہ یہ تعمیراتی رکاوٹ کی وجہ سے ونڈوز آپریٹنگ سسٹم پر عمل نہیں کرے گا:

مثال 4: OR منطق کے ساتھ گولانگ بلڈ ٹیگ شامل کریں۔

ونڈوز یا لینکس کو نشانہ بناتے وقت کوڈ شامل کرنے کے لیے، ہم '// +build windows Linux' بلڈ ٹیگ استعمال کر سکتے ہیں۔

// +بلڈ ونڈوز لینکس

پیکج مرکزی

درآمد 'fmt'

func مرکزی () {

ایف ایم ٹی . پرنٹ ایل این ( 'ارے، ونڈوز یا لینکس صارفین' )

}

یہاں، ہم تعمیراتی رکاوٹ کو منطقی OR کے ساتھ لاگو کرتے ہیں جو ونڈوز اور لینکس آپریٹنگ سسٹم دونوں کے لیے بنایا جانا چاہتا ہے۔ '// +build windows Linux' لائن بتاتی ہے کہ اس فائل کو تعمیر میں شامل کیا جانا چاہیے جب ہدف پلیٹ فارم ونڈوز یا لینکس ہو۔ اگلا، ہم Go معیاری لائبریری سے 'fmt' پیکیج درآمد کرتے ہیں جو بنیادی ان پٹ اور آؤٹ پٹ فعالیت فراہم کرتا ہے۔ مین فنکشن میں، ہم 'fmt' پیکیج سے Println() فنکشن کا استعمال کرتے ہوئے 'Hey, Windows یا Linux Users' سٹرنگ سٹیٹمنٹ پرنٹ کرتے ہیں۔

لہذا، آؤٹ پٹ کو مندرجہ ذیل میں بازیافت کیا گیا ہے۔ ایک ہی پیغام تیار ہوتا ہے چاہے ہم ونڈوز یا لینکس آپریٹنگ سسٹم استعمال کریں:

مثال 5: گولانگ بلڈ ٹیگ کو AND منطق کے ساتھ شامل کریں۔

ہم مزید پیچیدہ حالات پیدا کرنے کے لیے متعدد بلڈ ٹیگز کی وضاحت کر سکتے ہیں۔ '// +build windows,linux' کمانڈ کو لینکس اور ونڈوز دونوں کے لیے کوڈ بنانے کے لیے استعمال کیا جا سکتا ہے۔

// +بلڈ ونڈوز، 386

پیکج مرکزی

درآمد 'fmt'

func مرکزی () {

ایف ایم ٹی . پرنٹ ایل این ( 'یہ 32 بٹ ونڈوز ہے' )

}

یہاں، تعمیر کی رکاوٹ جس کی وضاحت کی گئی ہے وہ ہے '// +build windows,386' جو یہ بتاتا ہے کہ Go فائل کو بلڈ میں شامل کیا جانا چاہیے جب ٹارگٹ پلیٹ فارم 32 بٹ ونڈوز ہو۔ نوٹ کریں کہ ہم ونڈوز اور 386 کے درمیان ایک کوما استعمال کرتے ہیں جو منطقی اور آپریٹر کے طور پر کام کرتا ہے۔ اس کا مطلب یہ ہے کہ کوڈ کو تعمیر میں شامل کرنے کے لیے دونوں شرائط کا پورا ہونا ضروری ہے۔

پھر، پچھلی مثال کی طرح، ہم آؤٹ پٹ کے لیے Println فنکشن() استعمال کرنے کے لیے Go معیاری لائبریری سے 'fmt' پیکیج درآمد کرتے ہیں۔ ہمارے پاس پروگرام کا مین() فنکشن ہے جہاں اسٹیٹمنٹ کو بطور دلیل println() فنکشن کے لیے پاس کیا جاتا ہے۔

جب ہم اس پروگرام کو 32 بٹ ونڈوز سسٹم پر بناتے اور چلاتے ہیں تو یہ مخصوص پیغام کو آؤٹ پٹ کے طور پر دکھاتا ہے۔ تاہم، اگر ہم اسے مختلف آپریٹنگ سسٹم یا فن تعمیر پر بنانے اور چلانے کی کوشش کرتے ہیں، تو یہ تعمیر میں شامل نہیں ہوگا:

مثال 6: ایک مخصوص فنکشن کے لیے گولانگ بلڈ ٹیگ شامل کریں۔

مزید یہ کہ بلڈ ٹیگز کو فائل کے اندر مخصوص فنکشنز پر بھی لاگو کیا جا سکتا ہے۔ تعمیراتی رکاوٹوں کی وجہ سے، اب ہم مشروط طور پر مخصوص افعال کو شامل یا ہٹا سکتے ہیں۔

پیکج مرکزی

درآمد 'fmt'

func مرکزی () {

ایف ایم ٹی . پرنٹ ایل این ( 'ارے وہاں، لطف اندوز!' )

پرنٹ ونڈوز میسیج ()

}

// +بلڈ ونڈوز

func پرنٹ ونڈوز میسیج () {

ایف ایم ٹی . پرنٹ ایل این ( 'ونڈوز آپریٹنگ سسٹم سے ہیلو' )

}

یہاں، اب ہم مین() طریقہ کی طرف بڑھتے ہیں جو شروع میں پیغام کو پرنٹ کرنے کے لیے 'fmt' پیکج کے ذریعے فراہم کردہ Println() طریقہ استعمال کرتا ہے۔ پھر، ہم printWindowsMessage() فنکشن کو مین() فنکشن کے نیچے تعینات کرتے ہیں اور '// +build windows' کی تعمیر کی رکاوٹ کی وضاحت کرتے ہیں۔ اس سے ظاہر ہوتا ہے کہ فنکشن صرف اس وقت تعمیر میں شامل ہوتا ہے جب ٹارگٹ پلیٹ فارم ونڈوز ہو۔

آخر میں، ہم Println() فنکشن کا استعمال کرتے ہوئے مخصوص 'Hello From Windows آپریٹنگ سسٹم' پیغام کو پرنٹ کرنے کے لیے printWindowsMessage() فنکشن سیٹ کرتے ہیں۔

اس طرح، آؤٹ پٹ کو بازیافت کیا جاتا ہے جو عام پیغام اور پلیٹ فارم کے لیے مخصوص پیغام دونوں کو دکھاتا ہے۔ نوٹ کریں کہ اگر ہم اسے کسی مختلف آپریٹنگ سسٹم پر بناتے اور چلاتے ہیں، تو printWindowsMessage() فنکشن کو تعمیر میں شامل نہیں کیا جائے گا، اور صرف عمومی پیغام ظاہر کیا جائے گا:

نتیجہ

گو میں بلڈ ٹیگز شامل کرنا تعمیر کے عمل کے دوران کوڈ کی شمولیت کو حسب ضرورت بنانے کی صلاحیت فراہم کرتا ہے۔ بلڈ ٹیگز کا فائدہ اٹھا کر، ہم پلیٹ فارم کے لیے مخصوص تعمیرات بنا سکتے ہیں، مختلف فن تعمیرات کے لیے کوڈ کو بہتر بنا سکتے ہیں، اور یہاں تک کہ مشروط طور پر مخصوص فنکشنز یا خصوصیات شامل کر سکتے ہیں۔