English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
استخدام البرنامج النموذجي يستخدم مجموعة متنوعة من القيم، التي قد تتغير أثناء التنفيذ.
مثال:، برنامج يقوم بتنفيذ بعض العمليات على القيم المدخلة من المستخدم. قد تكون القيمة المدخلة للمستخدم مختلفة عن قيمة أخرى مدخلة من المستخدم. لذلك، تحتاج إلى استخدام المتغيرات، لأن المستخدمين الآخرين قد لا يستخدمون نفس القيمة. عند إدخال قيمة جديدة سيتم استخدامها في عملية، يمكن تخزين هذه القيم مؤقتًا في ذاكرة الوصول العشوائي للكمبيوتر، وتلك القيم تختلف في هذا الجزء من الذاكرة، لذلك يُطلق عليهامتغير. المتغير هو وسم لمعلومات يمكن تغييرها أثناء التنفيذ. وتسمح المتغيرات بالبحث عن معالجة المعلومات المخزنة.
متغيرقواعد التسمية:
يجب أن يبدأ اسم المتغير بالحرف أو العلامة الحية ( _)، ويمكن أن يحتوي على الحروف من '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