"إذا أراد العامل أن يؤدي عمله بشكل جيد، فعليه أولاً أن يشحذ أدواته." - كونفوشيوس، "مختارات كونفوشيوس. لو لينجونج"
الصفحة الأمامية > برمجة > Go ":=" vs. "=": متى يجب استخدام إعلانات المتغير القصيرة؟

Go ":=" vs. "=": متى يجب استخدام إعلانات المتغير القصيرة؟

تم النشر بتاريخ 2024-12-22
تصفح:823

Go

فهم الفرق بين ": =" و " =" في Go

كمبتدئ في Go، قد تكون في حيرة من أمرك بشأن استخدام قابل للتبديل على ما يبدو لـ ":=" و"=" للتخصيصات المتغيرة. ومع ذلك، هناك اختلاف دقيق يدور حول سياق الإعلانات المتغيرة.

دور "="

في Go، "=" يستخدم بشكل أساسي من أجل المهام المتغيرة. وهو يلتزم بصيغة "var name type = Expression"، حيث يمثل "name" المتغير الذي تم تعيينه. بشكل حاسم، يمكن حذف النوع أو تعبير المهمة، ولكن ليس كليهما.

طبيعة ":="

في المقابل، ":=" تشير إلى اختصار تعريف المتغير، والذي يتبع التنسيق "name := Expression." هنا، يعمل ":=" كمشغل إعلان وتخصيص مدمج. يتم الاستدلال على نوع "الاسم" تلقائيًا من نوع "التعبير".

التمييز بين الإقرار والتنازل

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

أمثلة على الاستخدام

لتوضيح التمييز، خذ بعين الاعتبار الأمثلة التالية :

var x int = 1
  1. تعلن هذه العبارة عن متغير صحيح "x" وتهيئته بالقيمة 1.
      var x int = 1

    r := foo()
  2. هذا إعلان متغير قصير يقوم بتعيين القيمة المرجعة للدالة "foo()" إلى المتغير الذي تم إنشاؤه حديثًا "r."
      r := foo()

  3. يؤدي هذا إلى إنشاء متغير جديد "m" وتعيين قيمة جديدة للمتغير الموجود "r." **الاستثناءات والمعلومات الإضافية** تجدر الإشارة إلى أنه لا يمكن استخدام ":=" إلا ضمن الوظائف. ومع ذلك، يمكنه الإعلان عن متغيرات مؤقتة داخل مُهيئات هياكل التحكم مثل "if" و"for" و"switch". لمزيد من الاستكشاف، يمكنك الرجوع إلى وثائق Go الرسمية على: * [التصريحات المتغيرة](https://go.dev/ref/spec#Variable_declarations)
أحدث البرنامج التعليمي أكثر>

تنصل: جميع الموارد المقدمة هي جزئيًا من الإنترنت. إذا كان هناك أي انتهاك لحقوق الطبع والنشر الخاصة بك أو الحقوق والمصالح الأخرى، فيرجى توضيح الأسباب التفصيلية وتقديم دليل على حقوق الطبع والنشر أو الحقوق والمصالح ثم إرسالها إلى البريد الإلكتروني: [email protected]. سوف نتعامل مع الأمر لك في أقرب وقت ممكن.

Copyright© 2022 湘ICP备2022001581号-3