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

دليل أساسي في Golang

تعليمات التحكم في Golang

وظائف Golang与方法

كائنات Golang

قطع وعدد في Golang

كلمات Golang (String)

مؤشرات Golang

واجهات Golang

التعاون في Golang

استثنائات Golang (Error)

متنوعة أخرى في Golang

م変 لغة Go

استخدام البرنامج النموذجي يستخدم مجموعة متنوعة من القيم، التي قد تتغير أثناء التنفيذ.

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

متغيرقواعد التسمية:

يجب أن يبدأ اسم المتغير بالحرف أو العلامة الحية ( _)، ويمكن أن يحتوي على الحروف من 'a-z' أو 'A-Z' أو الأرقام من 0-9، والرموز مثل '_'.

Geeks, geeks, _geeks23 //متغيرات صالحة
123Geeks, 23geeks //متغير غير صالح

لا يجب أن تبدأ اسم المتغير بالرقم.

234geeks //متغير غير صالح

اسم المتغير يفرق بين الحروف الكبيرة والصغيرة.

geeks وGeeks هما متغيران مختلفان

لا يمكن استخدام كلمة المفتاح كاسم متغير.

لا يوجد تحديد للطول لاسم المتغير، ولكن يُنصح باستخدام طول يتراوح بين 4 و15 حرفًا.

إعلان المتغير

في لغة Go، يتم إنشاء المتغيرات بطرقين مختلفين:

استخدام كلمة المفتاح var:في لغة Go، يتم استخدام متغيرات معينة النوع لتحديدvarمكتوبة بكلمات مفتاحية، وتربط هذه الكلمات المفتاحية اسم المتغير وتمنحها قيمة بدءية.

النمط:

var اسم_المتغير نوع = تعبير

ملاحظة هامة:

في الجملة اللغوية المذكورة أعلاه،نوع (النوع) أو=يمكن حذف التعبير، لكن لا يمكن حذف كلاهما في إعلان المتغير.

إذا تم حذف النوع، فإن نوع المتغير يتم تحديده من قيمة التعبير الذي يتم تتبعه.

//变量的概念
package main
import "fmt"
func main() {
    //变量声明和初始化
    // نوع صريح
    var myvariable1 = 20
    var myvariable2 = "w3codebox"
    var myvariable3 = 34.80
    // عرض القيمة وال
    // نوع المتغيرات
    fmt.Printf("قيمة متغير myvariable1 هي : %d\n", myvariable1)
    fmt.Printf("نوع متغير myvariable1 هو : %T\n", myvariable1)
    fmt.Printf("قيمة متغير myvariable2 هي: %s\n", myvariable2)
    fmt.Printf("نوع متغير myvariable2 هو : %T\n", myvariable2)
    fmt.Printf("قيمة متغير myvariable3 هي: %f\n", myvariable3)
    fmt.Printf("نوع متغير myvariable3 هو : %T\n", myvariable3)
}

الإخراج :

قيمة متغير myvariable1 هي: 20
نوع متغير myvariable1 هو : int
قيمة متغير myvariable2 هي : w3codebox
نوع متغير myvariable2 هو : string
قيمة متغير myvariable3 هي: 34.800000
نوع متغير myvariable3 هو : float64

إذا تم حذف التعبير، يكون نوع المتغير صفر، الرقم صفر، القيمة الحالة(false)، والقيمة النصية""،وأنواع الواجهات والمراجع تكون nil. لذلك،في لغة Go لا يوجد مفهوم لمتغيرات لم يتم تعيينها.

package main
import "fmt"
func main() {
    // إعلان وتوليد المتغيرات دون استخدام تعبير
    var myvariable1 int
    var myvariable2 string
    var myvariable3 float64
    // عرض متغير ذو قيمة 0
    fmt.Printf("قيمة متغير myvariable1 هي : %d\n", myvariable1)
    fmt.Printf("قيمة متغير myvariable2 هي: %d\n", myvariable2)
    fmt.Printf("قيمة متغير myvariable3 هي: %d\n", myvariable3)
}

الإخراج :

قيمة متغير myvariable1 هي: 0
قيمة متغير myvariable2 هي: %!d(string=)
قيمة متغير myvariable3 هي: %!d(float64=0)

إذا تم استخدام النوع، يمكن إعلان متغيرات متعددة من نفس النوع في إعلان واحد.

package main
import "fmt"
func main() {
    // إعلان وتوليد متغيرات من نفس النوع في سطر واحد
    var myvariable1, myvariable2, myvariable3 int = 2, 454, 67
    // إخراج قيمة المتغير
    fmt.Printf("قيمة متغير myvariable1 هي : %d\n", myvariable1)
    fmt.Printf("قيمة متغير myvariable2 هي: %d\n", myvariable2)
    fmt.Printf("قيمة متغير myvariable3 هي: %d\n", myvariable3)
}

الإخراج :

قيمة متغير myvariable1 هي: 2
قيمة متغير myvariable2 هي: 454
قيمة متغير myvariable3 هي: 67

إذا تم حذف النوع، يمكن إعلان متغيرات متعددة من أنواع مختلفة في إعلان واحد. يتم تحديد نوع المتغير من قيمة التوليد.

package main
import "fmt"
func main() {
    // متغيرات ذات أنواع مختلفة
    // في سطر واحد
    متغيرات var myvariable1, myvariable2, myvariable3 = 2, "GFG", 67.56
    // طباعة قيمة ومتغيرات النوع
    fmt.Printf("قيمة متغير myvariable1 هي : %d\n", myvariable1)
    fmt.Printf("نوع متغير myvariable1 هو : %T\n", myvariable1)
    fmt.Printf("\nقيمة متغير myvariable2 هي : %s\n", myvariable2)
    fmt.Printf("نوع متغير myvariable2 هو : %T\n", myvariable2)
    fmt.Printf("\nقيمة متغير myvariable3 هي : %f\n", myvariable3)
    fmt.Printf("نوع متغير myvariable3 هو : %T\n", myvariable3)
}

الإخراج :

قيمة متغير myvariable1 هي: 2
نوع متغير myvariable1 هو : int
قيمة متغير myvariable2 هي: GFG
نوع متغير myvariable2 هو : string
قيمة متغير myvariable3 هي: 67.560000
نوع متغير myvariable3 هو : float64

دعوة الدالة التي تعود بنتيجة متعددة تسمح لك بتعيين مجموعة من المتغيرات.

مثال:

//في هذا المكان، يعود os.Open بنتيجة
//متغير i في الملف وأي خطأ
//في متغير j
var i, j = os.Open(name)

((أ) استخدام إعلان المتغيرات القصيرة: باستخدام إعلان المتغيرات القصيرة)لإعلان المتغيرات المحلية التي يتم إعلانها وتعيينها في الدوال.

النمط:

variable_name:= expression

ملاحظة:لا تدخل في:=و=التباعد بينهما بسبب:= هي إعلان، بينما = هي تعيين.

ملاحظة هامة:

في التعبير المذكور أعلاه، يتم تحديد نوع المتغير بناءً على نوع التعبير.

package main
import "fmt"
func main() {
    //إعلان باستخدام إعلان المتغيرات القصيرة
    myvariable1 := 39
    myvariable2 := "oldtoolbag.com"
    myvariable3 := 34.67
    // طباعة قيمة ومتغيرات النوع
    fmt.Printf("قيمة متغير myvariable1 هي : %d\n", myvariable1)
    fmt.Printf("نوع متغير myvariable1 هو : %T\n", myvariable1)
    fmt.Printf("\nقيمة متغير myvariable2 هي : %s\n", myvariable2)
    fmt.Printf("نوع متغير myvariable2 هو : %T\n", myvariable2)
    fmt.Printf("\nقيمة متغير myvariable3 هي : %f\n", myvariable3)
    fmt.Printf("نوع متغير myvariable3 هو : %T\n", myvariable3)
}

الإخراج :

قيمة myvariable1 هي : 39
نوع متغير myvariable1 هو : int
قيمة myvariable2 هي : oldtoolbag.com
نوع متغير myvariable2 هو : string
قيمة myvariable3 هي : 34.670000
نوع متغير myvariable3 هو : float64

بفضل بساطتها ومرنيتها، يتم إعلان معظم المتغيرات المحلية باستخدام إعلان المتغيرات القصيرة.

يستخدم إعلان var المتغيرات للوظائف التي تحتاج إلى نوع محدد مسبقًا للاستخدام مع تعبيرات التكوين المبدئي، أو للوظائف التي يتم تعيين قيمها لاحقًا وغير مهمة القيمة البدائية.

باستخدام إعلان المتغيرات القصيرة، يمكن إعلان متغيرات متعددة في تعيين واحد.

package main
import "fmt"
func main() {
    //إعلان وتعيين المتغيرات في سطر واحد
    // استخدام بيانات متغيرة قصيرة
    //متغيرات من نفس النوع
    myvariable1, myvariable2, myvariable3 := 800, 34.7, 56.9
    // طباعة قيمة ومتغيرات النوع
    fmt.Printf("قيمة متغير myvariable1 هي : %d\n", myvariable1)
    fmt.Printf("نوع متغير myvariable1 هو : %T\n", myvariable1)
    fmt.Printf("\nقيمة myvariable2 هي : %f\n", myvariable2)
    fmt.Printf("نوع متغير myvariable2 هو : %T\n", myvariable2)
    fmt.Printf("\nقيمة متغير myvariable3 هي : %f\n", myvariable3)
    fmt.Printf("نوع متغير myvariable3 هو : %T\n", myvariable3)
}

الإخراج :

قيمة متغير myvariable1 هي : 800
نوع متغير myvariable1 هو : int
قيمة myvariable2 هي : 34.700000
نوع myvariable2 هو : float64
قيمة myvariable3 هي : 56.900000
نوع متغير myvariable3 هو : float64

في إعلان المتغيرات القصيرة، يُسمح بإعادة تعيين مجموعة من المتغيرات من خلال دعوة الدالة التي تعود بعدة قيم.

//في هذا المكان، يعود os.Open بنتيجة
//متغير i في الملف وأي خطأ
//في متغير j
i, j := os.Open(name)

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

package main
import "fmt"
func main() {
    // استخدام بيانات متغيرة قصيرة
    //في هذا المكان، عمل إعلان المتغيرات القصيرة
    //كما هو الحال في تعيين متغير myvar2
    //بسبب وجود نفس المتغير في نفس الكتلة
    //لأن قيمة myvar2 قد تغيرت إلى 100
    myvar1, myvar2 := 39, 45
    myvar3, myvar2 := 45, 100
    // إذا حاولت تشغيل السطر المعلق،
    // سيقدم المترجم خطأ لأن
    // هذه المتغيرات قد تم تعريفها، على سبيل المثال
    // myvar1, myvar2 := 43, 47
    // myvar2 := 200
    // طباعة قيمة المتغيرات
    fmt.Printf("قيمة myvar1 و myvar2 هي : %d %d\n", myvar1, myvar2)
    fmt.Printf("قيمة myvar3 و myvar2 هي : %d %d\n", myvar3, myvar2)
}

الإخراج :

قيمة myvar1 و myvar2 هي : 39 100
قيمة myvar3 و myvar2 هي : 45 100

يمكن استخدام بيانات متغيرة قصيرة للإشارة إلى متغيرات ذات أنواع مختلفة في بيانة واحدة. يتم تحديد نوع هذه المتغيرات من خلال التعبير.

package main
import "fmt"
func main() {
    // في سطر واحد
    // استخدام بيانات متغيرة قصيرة
    // متغيرات ذات أنواع مختلفة
    myvariable1, myvariable2, myvariable3 := 800, "w3codebox", 47.56
    // طباعة قيمة ومتغيرات النوع
    fmt.Printf("قيمة متغير myvariable1 هي : %d\n", myvariable1)
    fmt.Printf("نوع متغير myvariable1 هو : %T\n", myvariable1)
    fmt.Printf("\nقيمة متغير myvariable2 هي : %s\n", myvariable2)
    fmt.Printf("نوع متغير myvariable2 هو : %T\n", myvariable2)
    fmt.Printf("\nقيمة متغير myvariable3 هي : %f\n", myvariable3)
    fmt.Printf("نوع متغير myvariable3 هو : %T\n", myvariable3)
}

الإخراج :

قيمة متغير myvariable1 هي : 800
نوع متغير myvariable1 هو : int
قيمة متغير myvariable2 هي : w3codebox
نوع متغير myvariable2 هو : string
قيمة متغير myvariable3 هي : 47.560000
نوع متغير myvariable3 هو : float64