English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
في لغة Go، تختلف النصوص عن لغات أخرى مثل Java، c++، Python، إلخ. إنها سلسلة من الحروف المتغيرة، حيث يتم التعبير عن كل حرف باستخدام بضعة بايتات من تشفير UTF-8. أو بمعنى آخر، النصوص هي سلسلة من البايتات غير القابلة للتغيير (بما في ذلك البايتات التي تحتوي على قيمة صفر) أو قطعة من بايتات فقط للقراءة، يمكن استخدامها لتعبير عن نص Unicode باستخدام تشفير UTF-8.
بسبب استخدام تشفير UTF-8، يمكن أن تحتوي نصوص Go على نصوص، النصوص هي خليط من أي لغة في العالم، دون أن تتسبب في فوضى أو قيود في الصفحة. عادة، يتم استخدامالعلامات المزدوجة””الضغط، كما هو موضح في الأمثلة التالية:
//كيفية إنشاء النصوص package main import "fmt" func main() { // إنشاء وتحديد القيمة //م変 النصوص //使用简写声明 My_value_1 := "Welcome to oldtoolbag.com" //استخدام كلمة المفتاح var var My_value_2 string My_value_2 = "w3codebox" //显示字符串 fmt.Println("String 1: ", My_value_1) fmt.Println("String 2: ", My_value_2) }
输出:
String 1: Welcome to oldtoolbag.com String 2: w3codebox
ملاحظة:يمكن أن تكون النصوص فارغة، لكنها لا يمكن أن تكون null.
في لغة Go، يتم إنشاء نصوص حرفية بطرقين مختلفين:
استخدام العلامات المزدوجة (“”):في هذا السياق، يتم إنشاء نصوص الكتل باستخدام العلامات المزدوجة (""). تسمح هذه النصوص بحروف النقاط، مثل الجدول أدناه، ولكن لا تدعم التشابك عبر السطور. يتم استخدام هذا النوع من نصوص الكتل بشكل واسع في برمجيات Golang.
المحول | الوصف |
---|---|
\\\ | الشرطة العكسية (\) |
\000 | حرف Unicode ب cod point ثماني من 8 حروف. |
\' | العلامات الواحدة ('). يُسمح باستخدامها فقط في نصوص الكتل. |
\" | العلامات المزدوجة (""). يُسمح باستخدامها فقط في نصوص الكتل المفسر. |
\a | Bell ASCII (BEL) |
\b | Backspace ASCII (BS) |
\f | Page Feed ASCII (FF) |
\n | Line Feed ASCII (LF) |
\r | Carriage Return ASCII (CR) |
\t | Tab ASCII (TAB) |
\uhhhh | حرف Unicode ب cod point أربعة من 16 حرف. |
حرف Unicode ب cod point ثماني من 32 حرف. | |
\v | Tab ASCII العمودي (VT) |
\xhh | حرف Unicode ب cod point ثنائي من 8 حروف. |
استخدام العلامة المزدوجة (``):في هذا السياق، يتم إنشاء نصوص الكتل باستخدام العلامات المزدوجة (``)، ويُطلق عليها أيضًاالنصوص الخام(النص الأصلي). النص الأصلي لا يدعم حروف النقاط، يمكنه التشابك عبر سطور، ويحتوي على أي حرف باستثناء العلامة المزدوجة. عادةً يتم استخدامه ل كتابة رسائل متعددة السطور في تعبيرات النصوص وHTML.
package main import "fmt" func main() { // إنشاء وتحديد القيمة // متغيرات النصوص // استخدام العلامة المزدوجة My_value_1 := "مرحبًا بـw3codebox" // إضافة حروف النقاط My_value_2 := "مرحبًا! w3codebox" // استخدام العلامة المزدوجة My_value_3 := `مرحبًا!w3codebox` // إضافة حروف النقاط // النص الأصلي My_value_4 := `مرحبًا! w3codebox` // عرض fmt.Println("String 1: ", My_value_1) fmt.Println("String 2: ", My_value_2) fmt.Println("String 3: ", My_value_3) fmt.Println("String 4: ", My_value_4) }
输出:
String 1: مرحبًا بـw3codebox String 2: مرحبًا! w3codebox String 3: مرحبًا!w3codebox String 4: Hello! w3codebox
الكلمة غير القابلة للتغيير:في لغة Go، بمجرد إنشاء كلمة، فإن الكلمة غير القابلة للتغيير، لا يمكن تغيير قيمة الكلمة. بمعنى آخر، الكلمة قابلة للقراءة فقط. إذا حاولت تغييرها، فإن الماكينير سيقوم بإطلاق خطأ.
// الكلمة غير القابلة للتغيير package main import "fmt" func main() { //创建和初始化字符串 //使用简写声明 mystr := "Welcome to w3codebox" fmt.Println("String:", mystr) /* إذا حاولت تغيير قيمة الكلمة، فإن الماكينير سيرفع خطأ، مثل، cannot assign to mystr[1] mystr[1]= 'G' fmt.Println("String:", mystr) */ }
输出:
الكلمة: Welcome to w3codebox
كيفية مرور الكلمة؟:يمكنك استخدام دورة range لمرور الكلمة. يمكن لهذه الدورة مرور على رمز Unicode لكل كلمة.
النحو:
for index, chr := range str { // جملة... }
في هذا السياق، المؤشر هو المغير الذي يحتوي على أول حرف من رمز UTF-8،chr هوالمغير الذي يحتوي على أحرف الكلمة المحددة، str هو كلمة.
// مرور الكلمة // استخدام دورة range package main import "fmt" func main() { // الكلمة كنطاق في دورة for for index, s := range "w3codebox" { fmt.Printf("%c قيمة المؤشر هي %d\n", s, index) } }
输出:
n قيمة المؤشر هي 0 h قيمة المؤشر هي 1 o قيمة المؤشر هي 2 o قيمة المؤشر هي 3 o قيمة المؤشر هي 4
كيفية زيارة حرف منفرد في الكلمة؟السلسلة هي حرف، لذلك، يمكننا زيارة كل حرف من الكلمة المحددة.
// زيارة أحرف الكلمة package main import "fmt" func main() { // إنشاء وتحديد كلمة str := "Welcome to w3codebox" // زيارة أحرف الكلمة for c := 0; c < len(str); c++ { fmt.Printf("\nالشخصية = %c الحرف = %v", str[c], str[c]) } }
输出:
الشخصية = W الحرف = 87 الشخصية = e الحرف = 101 الشخصية = l الحرف = 108 الشخصية = c الحرف = 99 字符 = o 字节 = 111 الشخصية = m الحرف = 109 الشخصية = e الحرف = 101 الشخصية = الحرف = 32 الشخصية = t الحرف = 116 字符 = o 字节 = 111 الشخصية = الحرف = 32 الشخصية = n الحرف = 110 الشخصية = h الحرف = 104 字符 = o 字节 = 111 字符 = o 字节 = 111 字符 = o 字节 = 111
如何从切片创建字符串?:在Go语言中,允许您从字节切片创建字符串。
//从切片创建一个字符串 package main import "fmt" func main() { //创建和初始化一个字节片 myslice1 := []byte{0x47, 0x65, 0x65, 0x6b, 0x73} //从切片创建字符串 mystring1 := string(myslice1) //显示字符串 fmt.Println("String 1: ", mystring1) //创建和初始化一个符文切片 myslice2 := []rune{0x0047, 0x0065, 0x0065, 0x006b, 0x0073} //从切片创建字符串 mystring2 := string(myslice2) //显示字符串 fmt.Println("String 2: ", mystring2) }
输出:
String 1: Geeks String 2: Geeks
如何查找字符串的长度?:在Golang字符串中,可以使用两个函数(一个是len()،另一个是RuneCountInString())来找到字符串的长度。UTF-8包提供了RuneCountInString()函数,该函数返回字符串中存在的符文总数。len()函数返回字符串的字节数。
//查找字符串的长度 package main import ( "fmt" "unicode/utf8" ) func main() { //创建和初始化字符串 //使用简写声明 mystr := "Welcome to w3codebox ??????" //查找字符串的长度 //使用len()函数 length1 := len(mystr) //使用RuneCountInString()函数 length2 := utf8.RuneCountInString(mystr) //显示字符串的长度 fmt.Println("string:", mystr) fmt.Println("Length 1:", length1) fmt.Println("Length 2:", length2) }
输出:
string: Welcome to w3codebox ????? Length 1: 31 طول 2: 31