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

دليل أساسي لGolang

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

الوظائف والطرق في Golang

المباني (Struct) في Golang

القطع (Slice) والعدادات في Golang

الفراغات (String) في Golang

مؤشرات Golang

واجهات Golang

التوازي في Golang

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

متنوعات Golang

ترتيب بلغة Go

يحتوي Go على مكتبة Sort يمكن استخدامها لترتيب أنواع بيانات مدمجة وأخرى مخصصة.

يحتوي مكتبة sort على طرق مختلفة لترتيب أنواع بيانات مختلفة، مثل Ints()، Float64s()، Strings()، إلخ.

يمكننا استخدام طريقة AreSorted() (مثل Float64sAreSorted()، IntsAreSorted()، إلخ) للتحقق من ترتيب القيم.

مثال على ترتيب Go

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)
}

الناتج:

[واشنطن نيويورك لندن دلهي]