السعة القصوى
الدرس 8 من 21 في دورة الشرائح والخرائط في Golang على Coddy.
في الدرس الماضي، تحدثنا عن السعة (capacity) وتعلمنا أنه عندما نقوم بعملية التقسيم (slicing)، يتم تحديد السعة من موضع البداية إلى نهاية الشريحة. ومع ذلك، يمكننا استخدام عامل التقسيم أو التعبير للتحكم في السعة أو الحد منها. لنلقِ نظرة على مثال:
نحن نعلم أن صيغة عامل التقسيم هي كالتالي: <strong>[start:stop]</strong>، ولكن يمكننا إضافة خيار ثالث لهذا العامل ليصبح كالتالي: <strong>[start:stop:capacity]</strong>. الخيار الثالث يسمح لنا بتحديد السعة القصوى للشريحة.
لذا، باستخدام تعبير تقسيم كامل، يمكنك تقسيم شريحة وفي نفس الوقت تحديد سعة الشريحة الناتجة من تعبير التقسيم هذا.
لنفترض أن لدينا شريحة مثل هذه:
numbers := []int{1, 2, 3, 4, 5, 6}لنقم بتقسيم هذه الشريحة للحصول على 3 عناصر:
numbers := []int{1, 2, 3, 4, 5, 6}
numSlice := numbers[1:4]يمكننا تمثيل ذلك كالتالي:
لذا هنا، نحصل على 3 عناصر وسعة قدرها 5، تماماً كما توضح هذه الصورة.
الآن، إذا استخدمنا السعة في عامل التقسيم وقمنا بتعيينها، على سبيل المثال، إلى 3:
numbers := []int{1, 2, 3, 4, 5, 6}
numSlice := numbers[1:4:4]فكر في السعة (capacity) تماماً مثل موضع العنصر هنا؛ لقد قمنا بتعيينها على 4. ولكن لاحظ أن موضع التوقف (stopping) لا يمكن أن يكون أكبر من موضع السعة (capacity).
التحدي
سهلفي الكود المعطى، قمنا بتعريف شريحة (slice) تسمى coddy تحتوي على 6 عناصر.
- قم بإجراء عملية تقسيم (slicing) لاستخراج العناصر "Tech" و "Learn Golang" من شريحة coddy مع التأكد من أن السعة (capacity) ستكون 4.
جرّب بنفسك
package main
import (
"fmt"
)
func main() {
// Slice من 6 عناصر
coddy := []string{"Coddy","Tech","Learn Golang","Learn JavaScript","C++","C#"}
// قم بعملية الـ Slicing هنا
// اطبع العناصر على الشاشة
fmt.Println("Elements:" ?)
// اطبع السعة (Capacity)
fmt.Println("Capacity:" ?)
}