كيفية تعريف مصفوفة ثابتة (شريحة) في Go؟
مرحباً بالجميع! لقد بدأت للتو في تعلم Go، وواجهت مشكلة في تعريف المصفوفات كثوابت. في لغات أخرى (مثل C++ أو Java)، اعتدت كتابة شيء مثل `const int arr[] = {1, 2, 3};`، وكان ذلك يعمل. لكن عندما أحاول فعل الشيء نفسه في Go، يُصدر المترجم خطأ.
إليك ما أحاول:
```go
const arr = [3]int{1, 2, 3}
```
يشتكي المترجم: `const initializer [3]int literal is not a constant`. أفهم أن Go أكثر صرامة تجاه الثوابت، لكني أحتاج إلى قائمة قيم غير قابلة للتغيير تكون متاحة في جميع أنحاء الحزمة. كيف يمكنني فعل ذلك بشكل صحيح؟
لقد جربت خيارات مختلفة: استخدام `var` بدلاً من `const`، لكن عندها يمكن تغيير المصفوفة عن طريق الخطأ. حاولت تعريف شريحة ثابتة — `const slice = []int{1, 2, 3}` — لكن هذا أيضاً لا يعمل. أرجو إرشادي، كيف يمكنني في Go تعريف مصفوفة لا يمكن تغييرها بعد التهيئة، وتكون متاحة كثابت؟ هل هناك صيغة خاصة أو حل بديل؟