English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
في لغة Go، الشقوق أكثر قوة وسهولة وسهولة وسهولة من الجداول، وهي بنية بيانات خفيفة. الشقوق هي سلسلة قابلة للتغيير الطول، تستخدم لتخزين عناصر نوعية متشابهة، وليس مسموحاً بتخزين أنواع مختلفة في نفس الشقوق. يمكن استخدام الشقوق في GoCompare()يقوم الدالة بمقارنة شقوق نوعية ثنائية مع بعضها البعضمقارنةهذا الدالة تعود قيمة عددية كاملة، والقيمة العددية تعبر عن ما إذا كانت الشقوق متساوية أو غير متساوية، وهي كما يلي:
إذا كان الناتج 0، فإن slice_1 == slice_2.
إذا كان الناتج -1، فإن slice_1 < slice_2.
إذا كان الناتج +1، فإن slice_1 > slice_2.
هذه الدالة معرفة في مكتبة bytes، لذا يجب عليك إدخال مكتبة bytes في برنامجك حتى تستطيع الوصول إلى دالة Compare.
القواعد:
func Compare(slice_1, slice_2 []byte) int
دعونا نستفيد من المثال لنتبه لهذا المفهوم:
//مقارنة شريطين من الثنائيات package main import ( "bytes" "fmt" ) func main() { //استخدام التعبير القصير لتكوين وتثبيت قطعة الثنائيات slice_1 := []byte{'G', 'E', 'E', 'K', 'S'} slice_2 := []byte{'G', 'E', 'e', 'K', 'S'} //مقارنة الشريط //استخدام دالة Compare res := bytes.Compare(slice_1, slice_2) if res == 0 { fmt.Println("!..المسقططان متطابقين..!") } else { fmt.Println("!..المسقططان غير متطابقين..!") } }
الخروج:
!..المسقططان غير متطابقين..!
مقارنة شريطين من الثنائيات مثال:
package main import ( "bytes" "fmt" ) func main() { slice_1 := []byte{'A', 'N', 'M', 'O', 'P', 'Q'} slice_2 := []byte{'a', 'g', 't', 'e', 'q', 'm'} slice_3 := []byte{'A', 'N', 'M', 'O', 'P', 'Q'} slice_4 := []byte{'A', 'n', 'M', 'o', 'p', 'Q'} //显示切片 fmt.Println("切片 1: ", slice_1) fmt.Println("切片 2: ", slice_2) fmt.Println("切片 3: ", slice_3) fmt.Println("切片 4: ", slice_4) //比较切片,使用Compare res1 := bytes.Compare(slice_1, slice_2) res2 := bytes.Compare(slice_1, slice_3) res3 := bytes.Compare(slice_1, slice_4) res4 := bytes.Compare(slice_2, slice_3) res5 := bytes.Compare(slice_2, slice_4) res6 := bytes.Compare(slice_2, slice_1) res7 := bytes.Compare(slice_3, slice_1) res8 := bytes.Compare(slice_3, slice_2) res9 := bytes.Compare(slice_3, slice_4) res10 := bytes.Compare(slice_4, slice_1) res11 := bytes.Compare(slice_4, slice_2) res12 := bytes.Compare(slice_4, slice_3) res13 := bytes.Compare(slice_4, slice_4) fmt.Println("\nالنتيجة 1:", res1) fmt.Println("النتيجة 2:", res2) fmt.Println("النتيجة 3:", res3) fmt.Println("النتيجة 4:", res4) fmt.Println("النتيجة 5:", res5) fmt.Println("النتيجة 6:", res6) fmt.Println("النتيجة 7:", res7) fmt.Println("النتيجة 8:", res8) fmt.Println("النتيجة 9:", res9) fmt.Println("النتيجة 10:", res10) fmt.Println("النتيجة 11:", res11) fmt.Println("النتيجة 12:", res12) fmt.Println("النتيجة 13:", res13) }
الخروج:
قطعة 1: [65 78 77 79 80 81] قطعة 2: [97 103 116 101 113 109] قطعة 3: [65 78 77 79 80 81] قطعة 4: [65 110 77 111 112 81] النتيجة 1: -1 النتيجة 2: 0 النتيجة 3: -1 النتيجة 4: 1 النتيجة 5: 1 النتيجة 6: 1 النتيجة 7: 0 النتيجة 8: -1 النتيجة 9: -1 النتيجة 10: 1 النتيجة 11: -1 النتيجة 12: 1 النتيجة 13: 0