English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
لغة البرمجة Go تتميز بأنها مشابهة جدًا للغات البرمجة الأخرى. في البرنامج، في بعض الأحيان نحتاج إلى تخزين مجموعة من البيانات من نفس النوع، مثل قائمة درجات الطلاب. هذا النوع من المجموعات يتم تخزينها في البرنامج باستخدام arrays. array هو سلسلة ثابتة الطول تستخدم لتخزين العناصر المتشابهة في ذاكرة النظام. بسبب طوله الثابت، لا يتم تقدير arrays مثل slices في لغة Go.
في المجموعة، يسمح بتخزين صفر عنصر أو أكثر. من خلال استخدام عمودية [] وتحديد موقع العناصر من البداية، مما يعني أن مؤشر العنصر الأول هو}}array [0]،يكون مؤشر آخر العنصر هوarray [len(array)-1]。
في لغة Go، يتم إنشاء Arrays بطريقتين مختلفتين:
استخدام كلمة المفتاح var:في لغة Go، يتم إنشاء Arrays باستخدام كلمة المفتاح var التي تحتوي على الاسم، الحجم والنوع المحدد.
النحو:
Var array_name[length]Type أو var array_name[length]Typle{item1, item2, item3, ...itemN}
ملاحظة هامة:
في لغة Go، يمكن تعديل Arrays، لذا يمكنك استخدام بناء array [index] في الجانب الأيسر لتعيين عنصر المجموعة في المكان المحدد.
Var array_name[index] = element[الشكل Object]
يمكنك استخدام قيمة المؤشر أو استخدام حلقة for لزيارة عناصر المجموعة.
في لغة Go، نوع Arrays أحادي الأبعاد.
طول المجموعة ثابت ولا يمكن تغييره.
يمكنك تخزين العناصر المتكررة في المجموعة.
//استخدام كلمة المفتاح var لإنشاء مجموعة //استخدام قيمة المؤشر لزيارة العناصر package main import "fmt" func main() { //استخدام كلمة المفتاح var لإنشاء مجموعة من النوع 字符串 var myarr [3]string //استخدام قيمة المؤشر لتوزيع العناصر myarr[0] = "GFG" myarr[1] = "ar.oldtoolbag.com" myarr[2] = "w3codebox" //زيارة عناصر المجموعة //استخدام قيمة المؤشر fmt.Println("عناصر المصفوفة:") fmt.Println("العنصر 1: ", myarr[0]) fmt.Println("العنصر 2: ", myarr[1]) fmt.Println("العنصر 3: ", myarr[2]) {}
الناتج:
عناصر المصفوفة: العنصر 1: GFG العنصر 2: ar.oldtoolbag.com العنصر 3: w3codebox
استخدام التعبيرات القصيرة:في لغة Go، يمكن استخدام التعبيرات القصيرة أيضًا لتحديد Arrays. إنه أكثر مرونة من الإعلان السابق.
النحو:
array_name:= [طول]Type{عنصر1, عنصر2, عنصر3,...عنصرN}[الشكل Object]
//استخدام بيان تعريف مختصر للمصفوفة //استخدام لفة for لاستدعاء المصفوفة package main import "fmt" func main() { //بيان تعريف مصفوفة مختصر arr := [4]string{"w3codebox", "gfg", "w3codeboxs1231", "ar.oldtoolbag.com"} //العناصر المستدعاة، باستخدام لفة for في المصفوفة fmt.Println("عناصر المصفوفة:") for ا := 0; ا < 3; ا++ { fmt.Println(arr[i]) {} {}
الناتج:
عناصر المصفوفة: w3codebox gfg w3codeboxs1231
نحن نعلم أن المصفوفة هي أحادية الأبعاد، ولكن يمكن إنشاء مصفوفات متعددة الأبعاد. مصفوفة متعددة الأبعاد هي مصفوفة من مصفوفات. يمكنك استخدام الجملة التالية لإنشاء مصفوفات متعددة الأبعاد في لغة Go:
Array_name[Length1][Length2]..[LengthN]Type
يمكنكاستخدام كلمة المفتاح Varأواستخدام بيانات التعريف القصيرةلإنشاء مصفوفات متعددة الأبعاد، مثل المثال التالي.
ملاحظة:في مصفوفات متعددة الأبعاد، إذا لم يستخدم المستخدم أي قيمة لتحديد خلية معينة، فإن مبرمج المصفوفة يقوم تلقائيًا بتحديد القيمة إلى صفر. لا يوجد مفهوم غير محدد في Golang.
package main import "fmt" func main() { //إنشاء وإعداد //مصفوفة ثنائية //استخدام التصريح القصير //استخدام (،) الفاصلة للتواصل arr := [3][3]string{{"C#", "C", "Python"}, {"Java", "Scala", "Perl"}, {"C++", "Go", "HTML"} //القيمة المستدعاة //استخدام لفة for في المصفوفة fmt.Println("عناصر المصفوفة 1") for اكس := 0; اكس < 3; اكس++ { for ي := 0; ي < 3; ي++ { fmt.Println(arr[x][y]) {} {} //إنشاء مصفوفة ثنائية //استخدام كلمة المفتاح var في المصفوفة //وإعدادها //استخدام مصفوفة الأبعاد باستخدام مؤشرات var arr1 [2][2]int arr1[0][0] = 100 arr1[0][1] = 200 arr1[1][0] = 300 arr1[1][1] = 400 //استدعاء قيمة المصفوفة fmt.Println("عناصر المصفوفة 2") for ب := 0; ب < 2; ب++ { for ق := 0; ق < 2; ق++ { fmt.Println(arr1[p][q]) {} {} {}
الناتج:
عناصر القائمة 1 C# C Python Java Scala Perl C++ Go HTML عناصر القائمة 2 100 200 300 400
في قائمة البيانات، إذا لم يتم تخصيص قائمة البيانات بشكل واضح،هذه القائمة البيانيةالالقيمة الافتراضية هي 0。
package main import "fmt" func main() { //إنشاء قائمة بيانات من نوع int، تحتوي على عناصرين //في هذا المكان، لم نُبني قائمة البيانات، لذا تكون قيمة القائمة البيانية صفر var myarr[2]int fmt.Println("عناصر القائمة: ", myarr) {}
الناتج:
عناصر القائمة: [0 0]
في قائمة البيانات، يمكنكاستخدامطريقة len()الحصولقائمة البياناتالطول،كما هو موضح أدناه:
package main import "fmt" func main() { //إنشاء قائمة بيانات //استخدام التصريح القصير arr1 := [...]int{9, 7, 6} arr2 := [...]int{9, 7, 6, 4, 5, 3, 2, 4} arr3 := [3]int{9, 3, 5} //استخدام طريقة len() لتحديد حجم القائمة البيانية fmt.Println("طول قائمة البيانات 1 هو:", len(arr1)) fmt.Println("طول قائمة البيانات 2 هو:", len(arr2)) fmt.Println("طول قائمة البيانات 3 هو:", len(arr3)) {}
الناتج:
طول قائمة البيانات 1 هو: 3 طول قائمة البيانات 2 هو: 8 طول قائمة البيانات 3 هو: 3
في قائمة البيانات،إذا كان نقاط المقطوعة " ..."يكون بوضوح في موقع الطول، ويحدد طول القائمة البيانية من العناصر المُستخدمة في التوليد. مثل المثال التالي:
//استخدام النقاط المقطوعة في القائمة البيانية package main import "fmt" func main() { //إنشاء قائمة بيانات حجمها معروف مسبقًا //بناءً على عدد العناصر الموجودة //استخدام النقاط المقطوعة myarray := [...]string{"GFG", "gfg", "w3codeboxs", "ar.oldtoolbag.com", "w3codebox"} fmt.Println("عناصر القائمة: ", myarray) //طول قائمة البيانات //يحددها... //استخدام طريقة len() fmt.Println("طول قائمة البيانات:", len(myarray)) {}
الناتج:
عناصر القائمة: [GFG gfg w3codeboxs ar.oldtoolbag.com w3codebox] طول قائمة البيانات: 5
في قائمة البيانات،يوفر لكفي array للتحرك عبر نطاق عناصر، مثلما يلي:
//كيفية تحسين قائمة البيانات package main import "fmt" func main() { // إنشاء مجموعة، حجمها // باستخدام نقاط السطر myarray := [...]int{29, 79, 49, 39, 20, 49, 48, 49} //استخدام الدوال المكررة لتحسين قائمة البيانات for x := 0; x < len(myarray); x++ { fmt.Printf("%d\n", myarray[x]) {} {}
الناتج:
29 79 49 39 20 49 48 49
في لغة Go،نوع القيمة في المجموعة ليس نوع استدلال، لذلك عندما يتم تخصيص مجموعة لنوع جديد، فإن التغييرات التي يتم إجراؤها في النوع الجديد لن تؤثر على النوع الأصلي. مثلما يلي مثال:
package main import "fmt" func main() { // إنشاء مجموعة، حجمها // باستخدام نقاط السطر my_array := [...]int{100, 200, 300, 400, 500} fmt.Println("المجموعة الأصلية (قبل التغيير):", my_array) // إنشاء متغير جديد // واستخدام my_array لتوليد المجموعة الجديدة new_array := my_array fmt.Println("المجموعة الجديدة (قبل التغيير):", new_array) // تغيير القيمة في الموقع 0 إلى 500 new_array[0] = 500 fmt.Println("المجموعة الجديدة (بعد التغيير):", new_array) fmt.Println("المجموعة الأصلية (بعد التغيير):", my_array) {}
الناتج:
المجموعة الأصلية (قبل التغيير): [100 200 300 400 500] المجموعة الجديدة (قبل التغيير): [100 200 300 400 500] المجموعة الجديدة (بعد التغيير): [500 200 300 400 500] المجموعة الأصلية (بعد التغيير): [100 200 300 400 500]
في المجموعات، إذا كان نوع العناصر قابلاً للمقارنة، فإن نوع المجموعة قابلاً للمقارنة أيضًا. لذلك،يمكننا استخدام عمليات == ل مقارنة مجموعتين من الأعداد مباشرة، مثلما يلي:
// كيفية مقارنة مجموعتين من الأعداد package main import "fmt" func main() { arr1 := [...]int{9, 7, 6} arr2 := [...]int{9, 7, 6} arr3 := [3]int{9, 5, 3} // مقارنة الأنواع باستخدام عمليات == fmt.Println(arr1 == arr2) fmt.Println(arr2 == arr3) fmt.Println(arr1 == arr3) // هذا سيؤدي إلى خطأ لأن // arr1 و arr4 غير متطابقين في النوع /* arr4:= [4]int{9,7,6} fmt.Println(arr1==arr4) */ {}
الناتج:
true false false