Avatar ·

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

مرحباً بالجميع! لقد بدأت للتو في تعلم Go وواجهت هذه المشكلة. لديّ شريحة من السلاسل `names := []string{"Alice", "Bob", "Charlie"}`. أحتاج إلى الحصول على العنصر الأخير من هذه الشريحة لعرضه على الشاشة أو معالجته. في Python كنت سأكتب `names[-1]` وكان كل شيء سيعمل. لكن في Go يتسبب هذا التعبير في خطأ ترجمة: `invalid slice index -1`. لقد بحثت في Google ووجدت أنه في Go لا يمكن استخدام الفهارس السالبة. حتى الآن توصلت فقط إلى هذه الطريقة الملتوية: ```go package main import "fmt" func main() { names := []string{"Alice", "Bob", "Charlie"} last := names[len(names)-1] fmt.Println(last) } ``` هذا يعمل، لكنه يبدو لي غير موثوق به كثيراً، خاصة إذا كانت الشريحة فارغة فجأة. بالأمس كان لدي خطأ: نسيت التحقق من أن الشريحة ليست فارغة، وتوقف البرنامج مع ذعر `panic: runtime error: index out of range [0]`. أرشدوني، كيف أحصل على العنصر الأخير من الشريحة بشكل صحيح وآمن؟ هل توجد دالة مدمجة في Go لهذا؟