لماذا تُستخدم علامات الاقتباس الخلفية (backticks) في تعريف الهياكل في Go؟
مرحبًا! بدأت تعلم لغة Go وواجهت بناء جملة غير مفهوم. عندما كنت أطلع على أمثلة الهياكل، لاحظت أنه بعد الحقول توجد أحيانًا سلاسل نصية بين علامات الاقتباس الخلفية:
```go
type User struct {
Name string `json:"name"`
Age int `json:"age"`
Email string `json:"email,omitempty"`
}
```
أفهم أن هذا له علاقة بـ JSON، لكنني لا أستطيع فهم سبب الحاجة لهذه العلامات وماذا تفعل بالضبط. هل يمكن حذفها؟ ماذا سيحدث إذا كتبت علامات اقتباس عادية أو حذفتها تمامًا؟
كما رأيت كتابات مثل:
```go
type Config struct {
Port int `yaml:"port"`
Host string `yaml:"host"`
Timeout int `yaml:"timeout,default=30"`
}
```
وحتى هذا:
```go
type Validator struct {
Name string `validate:"required,min=3,max=50"`
Email string `validate:"required,email"`
}
```
يبدو أن المحتوى بين العلامات يغير سلوك البرنامج، لكنني لا أفهم الآلية. هل هذه سلاسل سحرية؟ كيف تتعامل Go معها؟