English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
عمودية الاسم المتغير القصيرة (:=) في Golang تستخدم لإنشاء متغيرات تحتوي على اسم مناسب وقيمة بدءية. الهدف الرئيسي من هذا العمل هو إعلان وتحديد متغيرات محلية داخل الدوال وتقليل نطاق المتغيرات. نوع المتغير يتم تحديده بناءً على نوع التعبير. كلمة المفتاح var أيضًا تستخدم لإنشاء متغيرات من نوع معين. لذا يمكنك القول أن هناك طريقتين لإنشاء متغيرات في Golang، كما يلي:
استخدام كلمة المفتاح var
استخدام عمودية الاسم المتغير القصيرة (:=)
في هذا المقال، سنناقش فقط عمودية الاسم المتغير القصيرة (:=). للحصول على معلومات حول كلمة المفتاح var، يمكنكفي لغة Goالإشارةكلمة المفتاح var。
نحو استخدام عمودية الاسم المتغير
اسم المتغير := تعبير أو قيمة
في هذا المكان، يجب تحديد المتغير مباشرة بعد إعلانه دون ذكر نوع المتغير، يتم استخدام التعبير أو القيمة على الجانب الأيمن لتقييم نوع المتغير. يمكن استخدام كلمة المفتاح var لتجنب تحديد التغيير عند الإعلان.
مثال:في هذا المكان، نستخدم عنصر الت声明 القصير لتحديد المتغيرات دون تحديد نوع المتغير. يتم تحديد نوع المتغير بواسطة:=نوع التعبير على يمين العمودية يحدده.
package main import "fmt" func main() { // إعلان وتحديد المتغير a := 30 // استقبال متغير نصي Language := "تعليمية أساسيات لغة Go" fmt.Println("قيمة a: ", a) fmt.Println("قيمة Language: ", Language) }
الإخراج:
قيمة a: 30 قيمة Language: تعليمية أساسيات لغة Go
عنصر الت声明 القصير يمكن استخدامه أيضًا لتحديد متغيرات في بيانات واحدةنفس النوع أو أنواع مختلفةمتعدد المتغيرات. أنواع هذه المتغيرات يتم تحديدها بواسطة:=تقييم التعبير على يمين العمودية.
package main import "fmt" func main() { // متعدد المتغيرات من نفس النوع (int) w3codebox1, w3codebox2, w3codebox3 := 117, 7834, 5685 // متعدد المتغيرات من أنواع مختلفة w3codebox4, w3codebox5, w3codebox6 := "GFG", 859.24, 1234 // عرض القيمة والمفهوم النوعي fmt.Printf("w3codebox1 القيمة: %d\n", w3codebox1) fmt.Printf("w3codebox1 نوعها: %T\n", w3codebox1) fmt.Printf("\nw3codebox2 القيمة: %d\n", w3codebox2) fmt.Printf("w3codebox2 نوعها: %T\n", w3codebox2) fmt.Printf("\nw3codebox3 القيمة: %d\n", w3codebox3) fmt.Printf("w3codebox3 نوعها: %T\n", w3codebox3) fmt.Printf("\nw3codebox4 القيمة: %s\n", w3codebox4) fmt.Printf("w3codebox4 نوعها: %T\n", w3codebox4) fmt.Printf("\nw3codebox5 القيمة: %f\n", w3codebox5) fmt.Printf("نوع w3codebox5 : %T\n", w3codebox5) fmt.Printf("\nقيمة w3codebox6 : %d\n", w3codebox6) fmt.Printf("نوع w3codebox6 : %T\n", w3codebox6) }
الإخراج:
قيمة w3codebox1 : 117 نوع w3codebox1 : int قيمة w3codebox2 : 7834 نوع w3codebox2 : int قيمة w3codebox3 : 5685 نوع w3codebox3 : int قيمة w3codebox4 : GFG نوع w3codebox4 : string قيمة w3codebox5 : 859.240000 نوع w3codebox5 : float64 قيمة w3codebox6 : 1234 نوع w3codebox6 : int
باستخدام محوفي البيانات القصيرة (:=)،يمكنك بيانلديه نطاق مستوى الفقرة فقطالمتغير المحليعادةً، يتم بيان المتغيرات المحلية داخل منطقة الوظيفة. إذا حاولت استخدام محوفي البيانات القصيرة لبيان متغير عالمي، سيتم إطلاق رسالة خطأ.
package main import "fmt" //استخدام كلمة المفتاح var لبيان //وإعداد المتغير //إنه متغير الحزمة، أو يمكنك القول نطاق عالمي var w3codebox1 = 900 //استخدام بيانات المتغيرات القصيرة //سيقوم بإطلاق خطأ w3codebox2 := 200 func main() { //في الداخل الوظيفة الوصول إلى w3codebox1 fmt.Println(w3codebox1) //في الداخل الوظيفة الوصول إلى w3codebox2 fmt.Println(w3codebox2) }
خطأ في الإخراج:
.\test.go:12:1: syntax error: non-declaration statement outside function body #.\test.go:12:1:خطأ لغوي: جملة غير معلنة خارج جسم الوظيفة
package main import "fmt" //استخدام var لبيان متغير عالمي var w3codebox1 = 900 func main() { //استخدام بيانات المتغيرات القصيرة //في الداخل الوظيفة //إنه لهذا النطاق المحلي، أي لا يمكن //في الخارج الوظيفة الوصول إلى w3codebox2 := 200 //في الداخل الوظيفة الوصول إلى w3codebox1 fmt.Println(w3codebox1) //في الداخل الوظيفة الوصول إلى w3codebox2 fmt.Println(w3codebox2) }
الإخراج:
900 200