وظيفة معلنة في ملف آخر غير مرئية — خطأ "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