Как получить последний элемент среза (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 لهذا؟