_(underscore) في Golang يسمى Blank Identifier . المعرف هو اسم محدد من قبل المستخدم لمكونات البرنامج المستخدمة لأغراض التعريف.

تتمتع Golang بميزة خاصة تتمثل في تحديد واستخدام المتغيرات غير المستخدمة باستخدام Blank Identifier. المتغيرات غير المستخدمة هي تلك المتغيرات التي يتم تعريفها من قبل المستخدم أثناء البرنامج ولكنه لا يستخدم هذه المتغيرات أبدًا. تلك المتغيرات تجعل البرنامج غير قابل للقراءة تقريبًا. كما تعلم، Golang هي لغة برمجة أكثر إيجازًا وقابلية للقراءة، وبالتالي فهي لا تسمح للمبرمجين بتعريف متغير غير مستخدم. إذا قمت بذلك، فسوف يعطيك المترجم خطأ.
يأتي الاستخدام الحقيقي لـ Blank Identifier عندما تقوم الدالة بإرجاع قيم متعددة، ولكننا نحتاج فقط إلى عدد قليل من القيم ونحتاج إلى إزالة القيم الزائدة. بشكل أساسي، فهو يخبر المترجم أن هذا المتغير غير ضروري ويتجاهله دون أي أخطاء. يقوم بإخفاء قيم المتغيرات مما يجعل البرنامج قابل للقراءة. لذا، عندما تقوم بتعيين قيمة إلى معرف فارغ، فلن يكون له أي فائدة.
مثال 1: في البرنامج أدناه، تقوم الدالة mul_div بإرجاع قيمتين ونقوم بتخزين كلتا القيمتين في معرفات mul و div . ولكن في البرنامج بأكمله، نستخدم متغيرًا واحدًا فقط، أي mul . لذلك سوف يعطي المترجم خطأ بأن div تم إعلانه ولم يتم استخدامه.
// Chương trình Go hiện trình biên dịch
// báo lỗi nếu một biến
// được khai báo nhưng không được sử dụng
package main
import "fmt"
// Hàm chính
func main() {
// gọi hàm này
// hàm trả về hai giá trị được gán
// cho định danh mul và div
mul, div := mul_div(105, 7)
// chỉ dùng biến mul
// trình biên dịch sẽ báo lỗi
fmt.Println("105 x 7 = ", mul)
}
// hàm trả về hai
// giá trị của kiểu integer
func mul_div(n1 int, n2 int) (int, int) {
// trả về các giá trị này
return n1 * n2, n1 / n2
}
نتيجة:
./prog.go:15:7: div được khai báo nhưng không được dùng
المثال 2: استخدم المعرف الفارغ لتعديل البرنامج أعلاه. بدلاً من تحديد div، استخدم فقط _ (الشرطة السفلية) . إنه يسمح للمترجم بتجاهل الأخطاء المعلنة وغير المستخدمة لهذا المتغير المعين.
// Chương trình Go dùng định danh trống
package main
import "fmt"
// Hàm chính
func main() {
// gọi hàm này
// hàm trả về hai giá trị
// được gán cho định danh mul và trống
mul, _ := mul_div(105, 7)
// chỉ dùng biến mul
fmt.Println("105 x 7 = ", mul)
}
// hàm trả về hai giá trị
// của kiểu integer
func mul_div(n1 int, n2 int) (int, int) {
// trả về giá trị này
return n1 * n2, n1 / n2
}
نتيجة:
105 x 7 = 735
نقاط هامة يجب تذكرها:
- يمكنك استخدام معرفات فارغة متعددة في نفس البرنامج. لذا يمكنك القول أن برنامج Golang يمكن أن يحتوي على متغيرات متعددة باستخدام نفس اسم المعرف الفارغ.
- هناك العديد من الحالات التي يكون فيها من الضروري تعيين قيم فقط لإكمال بناء الجملة حتى عندما يكون من المعروف أن القيم لن يتم استخدامها في البرنامج في أي مكان. مثل الدالة التي ترجع قيم متعددة. تستخدم معظم هذه الحالات معرفًا فارغًا.
- يمكنك استخدام أي قيمة من أي نوع باستخدام معرف فارغ.