Avatar ·

ما الفرق بين علامات الاقتباس الخلفية (``) وعلامات الاقتباس المزدوجة ("") في Go؟

```html

مرحبًا بالجميع! لقد بدأت للتو في تعلم Go ولاحظت أنه يمكن تعريف السلاسل النصية بطريقتين: باستخدام علامات الاقتباس المزدوجة وباستخدام علامات الاقتباس الخلفية (backticks). على سبيل المثال:

str1 := "Привет, мир!"
str2 := `Привет, мир!`

للوهلة الأولى، لا يوجد أي فرق — كلا الخيارين يعملان. لكنني حاولت إنشاء سلسلة نصية متعددة الأسطر باستخدام علامات الاقتباس المزدوجة — وحصلت على خطأ في الترجمة. أما مع علامات الاقتباس الخلفية فكل شيء يعمل:

// خطأ!
// str3 := "Строка
// на две строки"

// يعمل
str4 := `Строка
на две строки`

كما لاحظت أنه داخل علامات الاقتباس المزدوجة يمكن استخدام escape sequences مثل \n, \t, \\، بينما في علامات الاقتباس الخلفية يتم طباعتها كنص عادي:

fmt.Println("Строка спереносом")   // سطر جديد فعلي
fmt.Println(`Стр
```