فك شريحة/مصفوفة إلى وسائط دالة في Go: هل هناك مقابل لعامل الانتشار (spread) من JS/Python؟
مرحباً بالجميع. أنا أكتب بلغة Go منذ فترة قصيرة، انتقلت من Python وJavaScript. كان من السهل جداً هناك تمرير مصفوفة أو قائمة إلى دالة تقبل عدة وسائط باستخدام العامل `*` (في Python) أو `...` (الانتشار في JS). على سبيل المثال، في Python كنت أستطيع فعل `my_func(*my_list)`.
الآن في Go لدي دالة تقبل عدة وسائط نصية:
```go
func printNames(name1, name2, name3 string) {
fmt.Println(name1, name2, name3)
}
```
ولدي شريحة من النصوص:
```go
names := []string{"Alice", "Bob", "Charlie"}
```
كيف يمكنني تمرير عناصر هذه الشريحة إلى الدالة `printNames` كوسائط منفصلة؟ جربت ببساطة كتابة `printNames(names...)`، لكن المترجم يشتكي من أنني لا أستطيع استخدام شريحة مع `...` في دالة ذات معاملات ثابتة. جربت فك الحزمة بشكل صريح عبر `names[0], names[1], names[2]` وهذا يعمل، لكن إذا كان لدي 10 عناصر، يصبح الأمر كابوساً.
أخبروني، هل هناك طريقة في Go لفك شريحة أو مصفوفة إلى وسائط منفصلة؟