English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

دليل أساسي Golang

Golang جملة تحكم

Golang دالة & طريقة

Golang هيكل

Golang قطعة & مصفوفة

Golang سلسلة(String)

Golang سهم

Golang واجهة

Golang تنافسية

Golang استثناء(Error)

Golang أخرى متنوعة

عمودية الاسم المتغير القصيرة في Go(:=)

عمودية الاسم المتغير القصيرة (:=) في 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