ما الفرق بين علامات الاقتباس العكسية (``) وعلامات الاقتباس المزدوجة ("") في Go؟
مرحبًا بالجميع! لقد بدأت للتو في تعلم Go ولاحظت أنه يمكن تعريف السلاسل النصية بطريقتين: باستخدام علامات الاقتباس المزدوجة وباستخدام علامات الاقتباس العكسية (backticks). على سبيل المثال:
```go
str1 := "Привет, мир!"
str2 := `Привет, мир!`
```
للوهلة الأولى، لا يوجد أي فرق - كلا الخيارين يعملان. لكنني حاولت إنشاء سلسلة نصية متعددة الأسطر باستخدام علامات الاقتباس المزدوجة - وحصلت على خطأ في الترجمة. بينما مع علامات الاقتباس العكسية يعمل كل شيء:
```go
// خطأ!
// str3 := "Строка
// на две строки"
// يعمل
str4 := `Строка
на две строки`
```
كما لاحظت أنه داخل علامات الاقتباس المزدوجة يمكن استخدام escape sequences مثل و \\t و \\\\، بينما في علامات الاقتباس العكسية يتم عرضها كنص عادي:
```go
fmt.Println("Строка спереносом") // سطر جديد فعلي
fmt.Println(`Стр