هل يمكن الحصول على قائمة بجميع حزم Go القياسية؟ كيف يتم ذلك؟
مرحبًا بالجميع! بدأت تعلم Go منذ حوالي شهر وأكتب أول مشروع صغير لي — خادم HTTP بسيط مع نقطتي نهاية. أثناء العمل، أجد نفسي باستمرار لا أعرف كل إمكانيات المكتبة القياسية. على سبيل المثال، كتبت عن طريق الخطأ دالتي الخاصة للتعامل مع JSON، بينما Go يحتوي بالفعل على `encoding/json`. أو أهدرت ساعة في تنفيذ تحليل أعلام سطر الأوامر قبل أن أعرف عن `flag`.
أصبحت مهتمًا: هل يمكن برمجيًا أو عبر CLI الحصول على قائمة كاملة بجميع الحزم التي تشكل المكتبة القياسية لـ Go؟ جربت `go list std` لكنه يعطي فقط قائمة بالأسماء، ولست متأكدًا من أنها جميع الحزم. كما سمعت عن `go doc` لكنه يعرض التوثيق لحزمة واحدة فقط في كل مرة.
إليك ما جربته بالفعل:
```go
// main.go
package main
import (
"fmt"
"os/exec"
)
func main() {
cmd := exec.Command("go", "list", "std")
out, _ := cmd.Output()
fmt.Println(string(out))
}
```
لكن هذا الكود يعمل أحيانًا