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