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

دليل أساسي Golang

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

وظائف Golang & طرق

هياكل البيانات Golang

قطع Golang & مجموعات

كلمات Golang (String)

مؤشرات Golang

واجهات Golang

التوازي Golang

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

متنوعة Golang

نسخ مجموعات لغة البرمجة Go

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

إذا قمنا بإنشاء نسخة من المجموعة باستخدام القيمة وأجرينا بعض التغييرات في القيمة الأصلية للمجموعة، فإن ذلك لن يعكس في نسخة المجموعة. وإذا قمنا بإنشاء نسخة من المجموعة باستخدام الإشارة وأجرينا بعض التغييرات في القيمة الأصلية للمجموعة، فإن ذلك سيتم تعكسه في نسخة المجموعة. كما يظهر في المثال التالي:

النحو:

// إنشاء نسخة من هذا المجلد بشكل قيمة
arr := arr1
// إنشاء نسخة من هذا المجلد بالإشارة
arr := &arr1

دعونا نستخدم المثال لمناقشة هذه النقطة:

مثال 1:

// نسخ هذا المجلد بشكل قيمة
package main
import "fmt"
func main() {
    // إنشاء وتحديد هذا المجلد
    // استخدام الت声明 القصير
    my_arr1 := [5]string{"Scala", "Perl", "Java", "Python", "Go"}
    // نسخ هذا المجلد إلى متغير جديد
    // هنا، يتم نقل العناصر بشكل قيمة
    my_arr2 := my_arr1
    fmt.Println("Array_1: ", my_arr1)
    fmt.Println("Array_2:", my_arr2)
    my_arr1[0] = "C++"
    // هنا، عند نسخ هذا المجلد
    // من خلال وضع القيمة في مجلد آخر
    // ثم تعديل المحتوى الأصلي
    // لن يتم انعكاس هذا المجلد في
    // نسخة من هذا المجلد
    fmt.Println("\nArray_1: ", my_arr1)
    fmt.Println("Array_2: ", my_arr2)
}

الناتج:

Array_1: [Scala Perl Java Python Go]
Array_2: [Scala Perl Java Python Go]
Array_1: [C++ Perl Java Python Go]
Array_2: [Scala Perl Java Python Go]

مثال على نسخ هذا المجلد بالإشارة:

// نسخ هذا المجلد بالإشارة
package main
import "fmt"
func main() {
    // إنشاء وتحديد هذا المجلد
    // استخدام الت声明 القصير
    my_arr1 := [6]int{12, 456, 67, 65, 34, 34}
    // نسخ هذا المجلد إلى متغير جديد
    // هنا، يتم نقل العناصر عن طريق الإشارة
    my_arr2 := &my_arr1
    fmt.Println("Array_1: ", my_arr1)
    fmt.Println("Array_2:", *my_arr2)
    my_arr1[5] = 1000000
    // هنا، عند نسخ هذا المجلد
    // من خلال وضع الإشارة في مجلد آخر
    // ثم تعديل المحتوى الأصلي
    // سيتم انعكاس هذا المجلد في
    // نسخة من هذا المجلد
    fmt.Println("\nArray_1: ", my_arr1)
    fmt.Println("Array_2:", *my_arr2)
}

الناتج:

Array_1: [12 456 67 65 34 34]
Array_2: [12 456 67 65 34 34]
Array_1: [12 456 67 65 34 1000000]
Array_2: [12 456 67 65 34 1000000]