Avatar ·

ماذا يعني رمز الشرطة السفلية قبل استيراد الحزمة في Go؟

مرحبًا بالجميع! لقد بدأت للتو في تعلم Go وواجهت بناء غير مفهوم بالنسبة لي. في كود شخص آخر، رأيت استيراد حزمة مع رمز الشرطة السفلية (underscore) قبل اسم الحزمة: ```go import ( "fmt" _ "github.com/lib/pq" "database/sql" ) ``` أفهم أن `_` في Go يُستخدم كمعرف فارغ (blank identifier) عندما نريد تجاهل القيمة المرجعة من دالة. لكن ماذا يفعل في الاستيراد؟ فإذا قمنا باستيراد حزمة، فإننا عادةً نستخدمها في الكود، وهنا مكتوب بوضوح أننا لا نستخدمها (وإلا سيصدر المترجم خطأ). حاولت إزالة هذا الاستيراد، وتوقف الكود عن العمل — أصدر المترجم خطأ بأن برنامج التشغيل (driver) لـ PostgreSQL غير موجود. ولكن مع ذلك، الحزمة `pq` نفسها لا تُستخدم في أي مكان في الكود. كيف يكون هذا ممكنًا؟ لماذا نحتاج إلى مثل هذا الاستيراد وكيف يعمل؟ اشرح لي، من فضلك، بكلمات بسيطة. أنا معتاد على Python، حيث الاستيراد يعني دائمًا استخدامًا صريحًا للوحدة، ولكن هنا هناك نوع من السحر. <<>>

ما ه