English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
يحتوي Go على مكتبة Sort يمكن استخدامها لترتيب أنواع بيانات مدمجة وأخرى مخصصة.
يحتوي مكتبة sort على طرق مختلفة لترتيب أنواع بيانات مختلفة، مثل Ints()، Float64s()، Strings()، إلخ.
يمكننا استخدام طريقة AreSorted() (مثل Float64sAreSorted()، IntsAreSorted()، إلخ) للتحقق من ترتيب القيم.
package main import ( "sort" "fmt" ) func main() { intValue := []int{10, 20, 5, 8} sort.Ints(intValue) fmt.Println("Ints:", intValue) floatValue := []float64{10.5, 20.5, 5.5, 8.5} sort.Float64s(floatValue) fmt.Println("floatValue:", floatValue) stringValue := []string{"راج", "موهان", "راي"} sort.Strings(stringValue) fmt.Println("Strings:", stringValue) str := sort.Float64sAreSorted(floatValue) fmt.Println("Sorted:", s
الناتج:
Ints: [5 8 10 20] floatValue: [5.5 8.5 10.5 20.5] Strings: [موهان راج راي] Sorted: true
افترض أننا نريد ترتيب مجموعة من النصوص بناءً على طول النص، يمكننا تنفيذ نمط ترتيب مخصص. لذلك، يجب علينا تحقيق طرق Less، Len و Swap المحددة في واجهة الترتيب.
ثم، يجب علينا تحويل الصفيف إلى نوع التحقق المطبق.
package main import "sort" import "fmt" type OrderByLengthDesc []string func (s OrderByLengthDesc) Len() int { return len(s) } func (str OrderByLengthDesc) Swap(i, j int) { str[i], str[j] = str[j], str[i] } func (s OrderByLengthDesc) Less(i, j int) bool { return len(s[i]) > len(s[j]) } func main() { city := []string{"نيويورك", "لندن","واشنطن","دلهي"} sort.Sort(OrderByLengthDesc(city)) fmt.Println(city) }
الناتج:
[واشنطن نيويورك لندن دلهي]