Avatar ·

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

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