كيفية الحصول على حرف من سلسلة نصية حسب الفهرس في Go؟ (مشكلة مع الرونات والبايتات)
مرحبًا بالجميع! أنا مبتدئ في Go وقد واجهت مشكلة غير متوقعة عند العمل مع السلاسل النصية. أحتاج إلى الحصول على حرف من سلسلة نصية حسب فهرسه، كما اعتدت فعله في لغات أخرى (مثل `str[i]` في Python أو `charAt(i)` في Java).
إليك الكود الخاص بي:
```go
package main
import "fmt"
func main() {
str := "Привет, мир!"
fmt.Println(str[0]) // يطبع 208، وليس 'П'
fmt.Println(string(str[0])) // يطبع 'Ð'، وليس 'П'
}
```
كنت أتوقع أن `str[0]` سيعيد لي الحرف الأول 'П'، ولكن بدلاً من ذلك أحصل على أرقام ورموز غريبة. لماذا يحدث هذا؟ كيف يمكنني الحصول على الحرف حسب الفهرس بشكل صحيح في Go؟
لقد جربت استخدام `string(str[0])`، ولكن هذا أيضًا لا يعمل بشكل صحيح. الغريب بشكل خاص أن الأمر يعمل بشكل طبيعي مع الحروف الإنجليزية (مثل "Hello")، ولكن