ترتيب الشرائح
استخدم sort.Slice والمساعدات
ترتيب الشرائح درس مجاني في Go Academy على CoddyKit. هذا هو الدرس 1 من أصل 4. يمكنك قراءة الدرس كاملاً أدناه مجاناً — ثم تمرن عليه مباشرة في المتصفح باستخدام محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7. هذا الدرس جزء من مسار التعلم في Go Academy، وتقدمك يتزامن عبر الويب وتطبيق CoddyKit. تتضمن دورة Go Academy 4 دروس في المجموع.
أهمية الفرز
يضع الفرز العناصر في ترتيب محدد. وتتولى حزمة sort من المكتبة القياسية في Go ذلك بكفاءة.
نادرًا ما تكتبون خوارزمية فرز خاصة بكم في Go. بدلًا من ذلك، تستدعون دوال مساعدة تعمل على الشرائح.
استيراد sort
لاستخدام الحزمة، استوردوها باستخدام import "sort". وهي جزء من المكتبة القياسية، لذلك لا حاجة إلى تنزيل خارجي.
package main
import (
"fmt"
"sort"
)
func main() {
fmt.Println("sort imported")
_ = sort.IntsAreSorted([]int{1, 2, 3})
}فرز الأعداد الصحيحة
ترتّب sort.Ints شريحة من النوع int تصاعديًا وفي مكانها. وتُعدّل الشريحة الأصلية.
package main
import (
"fmt"
"sort"
)
func main() {
nums := []int{5, 2, 8, 1, 9}
sort.Ints(nums)
fmt.Println(nums)
}فرز السلاسل النصية
ترتّب sort.Strings شريحة من السلاسل النصية ترتيبًا معجميًا، أي أبجديًا وفق ترتيب البايتات.
package main
import (
"fmt"
"sort"
)
func main() {
words := []string{"banana", "apple", "cherry"}
sort.Strings(words)
fmt.Println(words)
}فرز الأعداد العشرية
ترتّب sort.Float64s شريحة من قيم float64 تصاعديًا.
package main
import (
"fmt"
"sort"
)
func main() {
values := []float64{3.2, 1.5, 2.8}
sort.Float64s(values)
fmt.Println(values)
}sort.Slice
ترتّب sort.Slice أي شريحة باستخدام دالة less تقدمونها. وتأخذ الدالة فهرسين هما i وj، وتُعيد true إذا كان ينبغي أن يسبق العنصر i العنصر j.
package main
import (
"fmt"
"sort"
)
func main() {
nums := []int{5, 2, 8, 1}
sort.Slice(nums, func(i, j int) bool {
return nums[i] < nums[j]
})
fmt.Println(nums)
}الترتيب التنازلي
للفرز تنازليًا، اعكسوا المقارنة في دالة less: أَعِدوا nums[i] > nums[j].
package main
import (
"fmt"
"sort"
)
func main() {
nums := []int{5, 2, 8, 1}
sort.Slice(nums, func(i, j int) bool {
return nums[i] > nums[j]
})
fmt.Println(nums)
}فرز البنى
تتألق sort.Slice عند التعامل مع البنى. فأنتم تحددون الحقل الذي يوجّه الترتيب.
package main
import (
"fmt"
"sort"
)
type Person struct {
Name string
Age int
}
func main() {
people := []Person{{"Bob", 30}, {"Alice", 25}}
sort.Slice(people, func(i, j int) bool {
return people[i].Age < people[j].Age
})
fmt.Println(people)
}التحقق من الفرز
تُعيد دوال مساعدة مثل sort.IntsAreSorted وsort.SliceIsSorted القيمة true إذا كانت الشريحة مرتبة مسبقًا، من دون تغييرها.
package main
import (
"fmt"
"sort"
)
func main() {
nums := []int{1, 2, 3}
fmt.Println(sort.IntsAreSorted(nums))
}التعديل في المكان
تُجري كل هذه الدوال الفرز في المكان. فهي لا تُعيد شريحة جديدة. بعد استدعاء sort.Ints(s)، يُعاد ترتيب المتغير s نفسه.
package main
import (
"fmt"
"sort"
)
func main() {
s := []int{3, 1, 2}
sort.Ints(s)
fmt.Println("s is now:", s)
}اختيار الدالة المساعدة المناسبة
استخدموا الدوال المساعدة ذات الأنواع المحددة (sort.Ints وsort.Strings وsort.Float64s) مع الشرائح البسيطة. واستخدموا sort.Slice عندما تحتاجون إلى قاعدة مخصصة أو إلى فرز البنى.
sort.Ints- الأعداد الصحيحة تصاعديًاsort.Slice- أي نوع، وفق قاعدتكم
اختبار سريع
ماذا تُعيد دالة less في sort.Slice؟
مراجعة
لقد تعلمتم الفرز باستخدام حزمة sort:
sort.Intsوsort.Stringsوsort.Float64sللشرائح ذات الأنواع المحددةsort.Sliceمع دالة less للقواعد المخصصة والبنى- تُجرى جميع عمليات الفرز في المكان
الأسئلة الشائعة
هل درس «ترتيب الشرائح» مجاني؟
نعم — نص درس «ترتيب الشرائح» كامل متاح مجاناً هنا على الويب. لتمرينه بشكل تفاعلي (محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7) وفتح باقي دورة Go Academy، انتقل إلى CoddyKit PRO. تتضمن دورة Go Academy 4 دروس في المجموع.
ماذا ستتعلم في «ترتيب الشرائح»؟
استخدم sort.Slice والمساعدات تتمرن على Go Academy مع أكواد عملية تشغلها مباشرة في المتصفح، ومدرس ذكاء اصطناعي متاح 24/7 يجيب على أسئلتك أثناء عملك.
هل أحتاج إلى خبرة سابقة لأبدأ Go Academy؟
لا تُشترط خبرة سابقة. Go Academy على CoddyKit منظم للمبتدئين حتى المتقدمين، لذا يمكنك البدء من هنا أو من البداية والتقدم بسرعتك الخاصة. هذا هو الدرس 1 من أصل 4.
كم من الوقت يستغرق درس «ترتيب الشرائح»؟
معظم دروس CoddyKit تستغرق حوالي 5–10 دقائق. كل منها موجز وتفاعلي، لذا تحرز تقدماً مستمراً وتستأنف من حيث توقفت عبر الويب والتطبيق.
هل يمكنني كتابة وتشغيل أكواد في درس Go Academy هذا؟
نعم. كل درس في Go Academy يتضمن محرر أكواد مدمج، لذا تكتب وتشغل أكواداً حقيقية مباشرة في متصفحك وتحصل على تعليقات فورية من الذكاء الاصطناعي — بدون إعداد محلي.