كيفية إضافة علامات بناء Golang

Kyfyt Adaft Lamat Bna Golang



تعد علامات البناء في Go ميزة قوية تسمح لنا بتضمين أو استبعاد كود معين بشكل مشروط أثناء عملية الإنشاء بناءً على قيود بناء محددة. تمكننا هذه المرونة من إنشاء تصميمات خاصة بالنظام الأساسي لأنظمة تشغيل أو بنيات مختلفة أو متطلبات أخرى خاصة بالبيئة. علامات البناء هي تعليقات خاصة تتم إضافتها في بداية الملف المصدر، أعلى إعلان الحزمة مباشرة. توفر هذه العلامات تعليمات لنظام إنشاء Go حول كيفية التعامل مع التعليمات البرمجية الموجودة في هذا الملف أثناء عملية التجميع.

مثال 1: إضافة علامة Golang Build لنظام Linux

لاستهداف نظام التشغيل Linux، يمكننا إضافة علامة البناء “// +build linux”.

// اذهب لبناء لينكس

// + بناء لينكس

طَرد رئيسي

يستورد 'إف إم تي'

func رئيسي () {

fmt . برينتلن ( 'مرحبًا مثال على نظام Linux' )

}

هنا، قمنا بتعيين قيود البناء في Go والتي تحدد أنه يجب إنشاء الكود فقط إذا كان النظام المستهدف هو Linux. بعد ذلك نقوم بتعريف الحزمة واستيراد البيان المطلوب للكود. ثم ندخل إلى الطريقة main() حيث نقوم بطباعة الرسالة باستخدام استدعاء 'Println' من الحزمة 'fmt'.







وبالتالي يتم عرض الرسالة على وحدة التحكم بنجاح لنظام التشغيل Linux:





المثال 2: إضافة علامة Golang Build لنظام Windows

عندما نريد فقط تنفيذ التعليمات البرمجية على نظام التشغيل Windows، نستخدم علامة البناء '// +build windows' في بداية الملف. ومن ذلك، يمكننا التأكد من أن الكود قد تم دمجه في البنية فقط عندما يكون Windows هو النظام الأساسي المقصود.





// + بناء النوافذ

طَرد رئيسي

يستورد 'إف إم تي'

func رئيسي () {

fmt . برينتلن ( 'مرحبا، مثال ويندوز!' )

}

هنا، نستخدم قيد البناء '// +build windows' لضمان تجميع التعليمات البرمجية وتنفيذها فقط عند الإنشاء لمنصة Windows. بعد ذلك، نقوم بتضمين الحزمة اللازمة للكود مع الحزمة ومعدل الاستيراد. ثم تأتي الدالة main() التي تستخدم الدالة println() لطباعة البيان عند بناء علامات النافذة في Golang.

عندما نقوم بإنشاء هذا البرنامج وتشغيله على نظام Windows، فإنه يظهر عبارة 'Hello, Windows example!' رسالة إلى وحدة التحكم. لاحظ أنه لن يتم إنشاء البرنامج أو تنفيذه على أنظمة تشغيل أخرى بسبب قيود البناء.



مثال 3: إضافة علامة Golang Build Tag لنظام لا يعمل بنظام Windows

على العكس من ذلك، إذا أردنا استبعاد التعليمات البرمجية عند إنشاء Windows، فيمكنك استخدام '!' علامة التعجب مع علامة البناء.

// +بناء !windows

طَرد رئيسي

يستورد 'إف إم تي'

func رئيسي () {

fmt . برينتلن ( 'مرحبا، باستثناء ويندوز!' )

}

هنا، نقوم ببناء توجيه قيد يشير إلى أنه يجب إنشاء التعليمات البرمجية وتنفيذها على منصات أخرى غير Windows. تشير علامة التعجب (!) قبل Windows إلى أنه يجب تضمين هذا الرمز في كافة الأنظمة الأساسية باستثناء Windows. بعد ذلك، نواصل نفس البرنامج كما في الوظيفة السابقة حيث نقوم أولاً بإضافة الحزم واستدعاء الوظيفة main() لتنفيذ الرسالة التي يتم تمريرها داخل وظيفة println().

وبالتالي، يقوم الإخراج بإنشاء الرسالة على وحدات تحكم نظام التشغيل. ضع في اعتبارك أنه لن يتم تنفيذه على نظام التشغيل Windows بسبب قيود البناء:

مثال 4: إضافة علامة بناء Golang باستخدام منطق OR

لتضمين الكود عند استهداف نظام التشغيل Windows أو Linux، يمكننا استخدام علامة البناء '// +build windows Linux'.

// + بناء ويندوز لينكس

طَرد رئيسي

يستورد 'إف إم تي'

func رئيسي () {

fmt . برينتلن ( 'مرحبًا، مستخدمي Windows أو Linux' )

}

هنا، نطبق قيد البناء مع OR المنطقي الذي سيتم إنشاؤه لكل من أنظمة التشغيل Windows وLinux. يحدد السطر '// +build windows Linux' أنه يجب تضمين هذا الملف في البنية عندما يكون النظام الأساسي المستهدف هو Windows أو Linux. بعد ذلك، نقوم باستيراد الحزمة 'fmt' من مكتبة Go القياسية التي توفر وظيفة الإدخال والإخراج الأساسية. في الوظيفة الرئيسية، نقوم بطباعة بيان السلسلة 'Hey, Windows or Linux Users' باستخدام وظيفة Println() من الحزمة 'fmt'.

وبالتالي، يتم استرداد الإخراج في ما يلي. يتم إنشاء نفس الرسالة سواء كنا نستخدم نظام التشغيل Windows أو Linux:

المثال 5: قم بإضافة علامة Golang Build باستخدام المنطق AND

يمكننا تحديد علامات إنشاء متعددة لإنشاء شروط أكثر تعقيدًا. يمكن استخدام الأمر '// +build windows,linux' لإنشاء تعليمات برمجية لكل من Linux وWindows.

// + بناء النوافذ، 386

طَرد رئيسي

يستورد 'إف إم تي'

func رئيسي () {

fmt . برينتلن ( 'هذا هو نظام التشغيل Windows 32 بت' )

}

هنا، قيد البناء المحدد هو '// +build windows,386' والذي يحدد أنه يجب تضمين ملف Go في البناء عندما يكون النظام الأساسي المستهدف هو Windows 32 بت. لاحظ أننا نستخدم الفاصلة '،' بين Windows و386 والتي تعمل بمثابة عامل التشغيل المنطقي AND. هذا يعني أنه يجب استيفاء كلا الشرطين حتى يتم تضمين الكود في الإنشاء.

بعد ذلك، كما هو الحال في المثال السابق، نقوم باستيراد الحزمة 'fmt' من مكتبة Go القياسية لاستخدام وظيفة Println () للإخراج. لدينا الدالة main() للبرنامج حيث يتم تمرير العبارة كوسيطة للدالة println().

عندما نقوم بإنشاء هذا البرنامج وتشغيله على نظام Windows 32 بت، فإنه يعرض الرسالة المحددة كمخرجات. ومع ذلك، إذا حاولنا إنشاءه وتشغيله على نظام تشغيل أو بنية مختلفة، فلن يتم تضمينه في البناء:

مثال 6: إضافة علامة Golang Build Tag لوظيفة محددة

علاوة على ذلك، يمكن أيضًا تطبيق علامات البناء على وظائف محددة داخل الملف. بسبب قيود البناء، يمكننا الآن تضمين أو إزالة وظائف محددة بشكل مشروط.

طَرد رئيسي

يستورد 'إف إم تي'

func رئيسي () {

fmt . برينتلن ( 'مرحبًا، استمتع!' )

printWindowsMessage ()

}

// + بناء النوافذ

func printWindowsMessage () {

fmt . برينتلن ( 'مرحبا من نظام التشغيل ويندوز' )

}

ننتقل الآن إلى الطريقة main() التي تستخدم طريقة Println() التي توفرها الحزمة “fmt” لطباعة الرسالة في البداية. بعد ذلك، نقوم بنشر وظيفة printWindowsMessage() أسفل الوظيفة main() ونحدد قيد البناء '// +build windows'. يشير هذا إلى أن الوظيفة مضمنة في الإصدار فقط عندما يكون النظام الأساسي المستهدف هو Windows.

أخيرًا، قمنا بتعيين وظيفة printWindowsMessage() لطباعة رسالة 'Hello From Windows Operating system' المحددة باستخدام وظيفة Println().

وبالتالي، يتم استرداد المخرجات التي تعرض كلاً من الرسالة العامة والرسالة الخاصة بالمنصة. لاحظ أنه إذا قمنا ببنائه وتشغيله على نظام تشغيل مختلف، فلن يتم تضمين وظيفة printWindowsMessage() في البناء، وسيتم عرض الرسالة العامة فقط:

خاتمة

توفر إضافة علامات البناء في Go القدرة على تخصيص تضمين التعليمات البرمجية أثناء عملية الإنشاء. من خلال الاستفادة من علامات البناء، يمكننا إنشاء تصميمات خاصة بالمنصة، وتحسين التعليمات البرمجية للبنيات المختلفة، وحتى تضمين وظائف أو ميزات محددة بشكل مشروط.