كيفية عكس سلسلة نصية في Go: ترتيب عكسي للأحرف
مرحباً بالجميع! لقد بدأت للتو في تعلم Go وواجهت مهمة بسيطة للوهلة الأولى — عكس سلسلة نصية. في Python كنت سأكتب `'hello'[::-1]` وأحصل على `'olleh'`. في Go جربت القيام بذلك:
```go
package main
import "fmt"
func reverse(s string) string {
var result string
for i := len(s) - 1; i >= 0; i-- {
result += string(s[i])
}
return result
}
func main() {
fmt.Println(reverse("hello")) // يطبع: olleh
}
```
مع سلسلة ASCII مثل "hello" يعمل هذا. لكن عندما حاولت عكس الكلمة الروسية "привет" أو سلسلة تحتوي على إيموجي، مثل "👋Привет"، حصلت على نص مشوش تماماً. بالنسبة لـ "привет" يطبع شيئاً مثل "тверип" — يبدو مشابهاً لكنه غير صحيح تماماً، وبالنسبة للإيموجي ينتج رموزاً غير مفهومة.
أفهم أن الـ...