Avatar ·

الفرق بين := و = في Go: الإعلان القصير مقابل التعيين

```html مرحباً بالجميع! لقد بدأت للتو في تعلم Go وأنا مرتبك بشأن العاملين := و =. يبدو أن كلاهما يُستخدم للتعامل مع المتغيرات، لكن ما الفرق؟ إليك مثال حيرني: ```go package main import "fmt" func main() { name := "Анна" // هذا يعمل var age int = 25 // هذا يعمل أيضاً age = 30 // وهذا يعمل // name = "Борис" // جربت هذا أيضاً } ``` عندما أكتب name := "Анна" — كل شيء على ما يرام. لكن إذا قمت أولاً بتعريف متغير باستخدام var، ثم حاولت استخدام := مع نفس المتغير، يشتكي المترجم: "no new variables on left side of :=". لماذا؟ لاحظت أيضاً أن := يعمل فقط داخل الدوال. إذا كتبت هكذا: ```go var version = "1.0" // عالمياً — عادي // version := "1.0" // عالمياً — خطأ! ``` لماذا؟ وفي أي الحالات يجب استخدام :=، وفي أي الحالات يجب استخدام = فقط؟ لقد قرأت عدة دروس تعليمية، لكني ما زلت مرتبكاً. اشرح لي، من فضلك، بطريقة مبسطة، مع أمثلة، متى أستخدم أياً منهما. ```