Avatar ·

Как получить последний элемент среза (slice) в Go? Есть ли встроенная функция?

مرحباً! لقد بدأت للتو في تعلم Go بعد Python، وقد واجهت مشكلة مع الشرائح (slices). في Python اعتدت الحصول على آخر عنصر في القائمة من خلال `my_list[-1]`، لكن في Go هذا التركيب لا يعمل — حيث يُصدر المترجم خطأ "invalid slice index -1". لقد جربت كتابة شيء مثل `arr[len(arr) - 1]`، لكنه يبدو مرهقاً، وبصراحة، لست متأكداً من أنه صحيح. على سبيل المثال، ماذا لو كانت الشريحة فارغة؟ كان لدي هذا الكود: ```go package main import "fmt" func main() { fruits := []string{"apple", "banana", "cherry"} // كيف نحصل على "cherry"؟ fmt.Println(fruits[-1]) // خطأ! fmt.Println(fruits[len(fruits)-1]) // هل يعمل؟ } ``` لكني أخشى أنه إذا كانت الشريحة فارغة، فإن `len(fruits) - 1` سيعطي -1، وسيتعطل البرنامج مع panic. هل يوجد في Go دالة مدمجة مثل `last()` أو أي طريقة اصطلاحية للحصول بأمان على آخر عنصر؟ أم يجب علي كتابة فحص لطول الشريحة في كل مرة؟ أرشدوني إلى الطريقة الصحيحة!