Avatar ·

المسافات البادئة في Go: علامات التبويب أم المسافات؟ ما هو المعيار ولماذا؟

مرحبًا بالجميع! لقد بدأت للتو في تعلم Go وواجهت سؤالًا يحيرني قليلاً. في بعض اللغات (مثل Python) يُوصى بشدة باستخدام المسافات (عادةً 4 مسافات لكل مستوى بادئة). وفي لغات أخرى يُوصى باستخدام علامات التبويب. قرأت أن Go لديها أداة `gofmt` التي تقوم بتنسيق الكود تلقائيًا، لكنني لا أفهم تمامًا أي نمط من المسافات البادئة هو "الصحيح" في مجتمع Go. انظر إلى الكود الخاص بي. لقد كتبت دالة بسيطة تتحقق مما إذا كان الرقم زوجيًا. استخدمت المسافات لأنني معتاد على ذلك: ```go package main import "fmt" func isEven(n int) bool { if n%2 == 0 { return true } else { return false } } func main() { fmt.Println(isEven(4)) } ``` عندما أقوم بتشغيل `gofmt`، لا يتغير الكود الخاص بي، وهذا يقلقني. هل يعني هذا أن أسلوبي مقبول؟ أم أنني أفعل شيئًا خاطئًا؟ سمعت أنه من المعتاد في Go استخدام علامات التبويب، لكنني لا أفهم لماذا هذا أفضل. فالمسافات تبدو أكثر ترتيبًا وتسمح