Avatar ·

وظيفة معلنة في ملف آخر غير مرئية — خطأ "undefined" في Go

مرحباً بالجميع! لقد بدأت للتو في تعلم Go وواجهت مشكلة غريبة جداً. لدي ملفان في نفس المجلد `main`: **main.go:** ```go package main func main() { hello() } ``` **helper.go:** ```go package main func hello() { println("Hello from helper!") } ``` أقوم بتشغيل البرنامج باستخدام الأمر `go run main.go` وأحصل على الخطأ: ``` # command-line-arguments ./main.go:4:2: undefined: hello ``` لماذا يحدث هذا؟ فكلتا الدالتين موجودتان في نفس الحزمة `main`، وفي لغات أخرى (مثل Python أو Java) الملفات في نفس المجلد عادةً "ترى" بعضها البعض تلقائياً. جربت إعادة تسمية الملفات، والتحقق من الصياغة — كل ذلك بدون جدوى. أرجو التوضيح، ما الخطأ الذي أفعله؟ كيف أنظم الكود في Go بشكل صحيح حتى تكون الدوال من ملفات مختلفة متاحة؟ <<>>

لماذا يحدث خطأ "undefined"

المشكلة هي أن الأمر go run main.go يقوم بتشغيل ملف واحد فقط — ma