ما هي الأحرف الرونية في لغة جولانج؟ كيفية استخدام Rune في Golang؟ المقال سوف يخبرك بالإجابة.

في الماضي، كان لدينا مجموعة واحدة فقط من الأحرف، وكانت تسمى ASCII (الرمز القياسي الأمريكي لتبادل المعلومات). ثم نستخدم 7 بتات لتمثيل 128 حرفًا، بما في ذلك الأحرف الإنجليزية الكبيرة والصغيرة والأرقام وعلامات الترقيم المختلفة وأحرف التحكم في الجهاز. وبسبب هذا القيد على الأحرف، لم يتمكن غالبية السكان من استخدام نظام الكتابة المخصص لهم. ولحل هذه المشكلة، وُلد Unicode. Unicode عبارة عن مجموعة فرعية من ASCII تحتوي على جميع الأحرف الموجودة في أنظمة الكتابة العالمية اليوم. وهو يتضمن علامات التشكيل والعلامات الإعرابية وأكواد التحكم مثل علامات التبويب وفواصل الأسطر، وتعيين رقم قياسي لكل حرف يسمى "نقطة رمز Unicode" أو في Go "Rune". نوع Rune هو اسم مستعار لـ int32.
نقاط يجب تذكرها حول الأحرف الرونية في جولانج
- تذكر دائمًا أن السلسلة عبارة عن تسلسل من البايتات، وليست رونة. يمكن أن تحتوي السلسلة على نص Unicode مشفر بتنسيق UTF-8. ولكن تم ترميز كود المصدر الخاص بـ Go بتنسيق UTF-8، لذا ليست هناك حاجة لترميز السلاسل بتنسيق UTF-8.
- يقوم UTF-8 بتشفير جميع حروف Unicode في نطاق من 1 إلى 4 بايتات، حيث يتم استخدام بايت واحد لـ ASCII والباقي للـ Runes.
- يحتوي ASCII على إجمالي 256 عنصرًا، منها 128 حرفًا و0-127 يتم تعريفها كنقاط رمز. هنا، تشير نقطة التعليمات البرمجية إلى عنصر يمثل قيمة واحدة.
على سبيل المثال:
♄
هذه رونة بقيمة سداسية عشرية ♄.
المعنى الحقيقي للرونية
إنه يمثل ثابت رون، حيث تحدد قيمة عدد صحيح نقطة رمز Unicode. في لغة Go، يتم تمثيل Rune Literal كحرف واحد أو أكثر محاطًا بأقواس مثل 'g'، '\t'، وما إلى ذلك. بين الأقواس، يُسمح لك بوضع أي حرف باستثناء سطر جديد وقوس غير مكتمل. هنا، تمثل الأحرف الموجودة بين هذه الأقواس قيمة Unicode للحرف المحدد نفسه، وتقوم السلاسل متعددة الأحرف التي تحتوي على شرطة مائلة للخلف (في بداية السلسلة متعددة الأحرف) بترميز القيم بتنسيق مختلف. في Rune Literal، كل السلاسل التي تبدأ بشرطة عكسية غير صالحة، فقط الأحرف التالية المفردة المفلتة تمثل قيمًا خاصة عند استخدامها بشرطة عكسية:
| شخصية |
يونيكود |
يصف |
| \أ |
U+0007 |
تنبيه أو جرس |
| \ب |
U+0008 |
مسافة للخلف |
| \ف |
U+000C |
بيانات النموذج |
| _ن |
U+000A |
تغذية السطر أو كسر السطر |
| \ر |
U+000D |
العودة إلى بداية السطر |
| _ت |
U+0009 |
علامة التبويب الأفقية |
| \v |
U+000b |
علامة التبويب العمودية |
| \\ |
U+005c |
الشرطة المائلة للخلف |
| \' |
U+0027 |
الفاصلة العليا |
| "" |
U+0022 |
علامات الاقتباس المزدوجة (صالحة فقط في سلاسل الأحرف) |
على سبيل المثال:
//Minh họa chương trình Go đơn giản về cách tạo một rune
package main
import (
"fmt"
"reflect"
)
func main() {
// Tạo một rune
rune1 := 'B'
rune2 := 'g'
rune3 := '\a'
// Hiện rune và kiểu của nó
fmt.Printf("Rune 1: %c; Unicode: %U; Type: %s", rune1,
rune1, reflect.TypeOf(rune1))
fmt.Printf("\nRune 2: %c; Unicode: %U; Type: %s", rune2,
rune2, reflect.TypeOf(rune2))
fmt.Printf("\nRune 3: Unicode: %U; Type: %s", rune3,
reflect.TypeOf(rune3))
}
نتيجة:
Rune 1: B; Unicode: U+0042; Type: int32
Rune 2: g; Unicode: U+0067; Type: int32
Rune 3: Unicode: U+0007; Type: int32
مثال 2:

نتيجة:
Character: ♛, Unicode:U+265B, Position:0
Character: ♠, Unicode:U+2660, Position:1
Character: ♧, Unicode:U+2667, Position:2
Character: ♡, Unicode:U+2661, Position:3
Character: ♬, Unicode:U+266C, Position:4