يحدد نوع البيانات نوع البيانات التي يمكن أن يحتوي عليها متغير Golang صالح . في لغة Go، يتم تقسيم الأنواع إلى أربع فئات على النحو التالي:

- الأنواع الأساسية: الأرقام والسلاسل والقيم المنطقية
- أنواع التجميع: المصفوفات والهياكل
- أنواع المرجع: المؤشر، والشريحة، والخريطة، والوظيفة، والقناة
- نوع الواجهة
سنناقش هنا أنواع البيانات الأساسية في لغة Go. يتم تصنيفها إلى ثلاث فئات فرعية:
أنواع البيانات الشائعة في Golang
الأرقام في جولانج
في لغة Go، يتم تقسيم الأرقام إلى ثلاث فئات فرعية:
الأعداد الصحيحة: في لغة Go، تأتي الأعداد الصحيحة الموقعة وغير الموقعة بأربعة أحجام مختلفة كما هو موضح في الجدول أدناه. يتم تمثيل الأعداد الصحيحة الموقعة بواسطة intويتم تمثيل الأعداد الصحيحة غير الموقعة بواسطة uint.
العمليات الحسابية الممكنة: الجمع، الطرح، الضرب، القسمة، الباقي
|
نوع البيانات
|
يصف
|
| int8 |
عدد صحيح موقّع مكون من 8 بتات |
| int16 |
عدد صحيح موقّع مكون من 16 بت |
| int32 |
عدد صحيح موقّع مكون من 32 بت |
| int64 |
عدد صحيح موقّع 64 بت |
| uint8 |
عدد صحيح غير موقّع مكون من 8 بتات |
| uint16 |
عدد صحيح غير موقّع 1 6 بت |
| uint32 |
عدد صحيح غير موقّع 32 بت |
| uint64 |
عدد صحيح غير موقّع 64 بت |
| عدد صحيح |
كلا من البيانات غير الموقعة والموقعة لهما نفس الحجم، 32 أو 64 بت |
| وحدة |
كلا من البيانات غير الموقعة والموقعة لهما نفس الحجم، 32 أو 64 بت |
| الأحرف الرونية |
هذا مرادف لـ int32 ويمثل أيضًا نقاط رمز Unicode. |
| بايت |
هذا مرادف لـ uint8. |
| uintptr |
هذا هو نوع عدد صحيح غير موقّع. عرضه غير محدد، لكنه يمكن أن يحتوي على كافة بتات قيمة المؤشر. |
على سبيل المثال:
// Chương trình Go sử dụng số nguyên
package main
import "fmt"
func main() {
// Dùng 8-bit unsigned int
var X uint8 = 225
fmt.Println(X, X-3)
// Dùng 16-bit signed int
var Y int16 = 32767
fmt.Println(Y+2, Y-2)
}
نتيجة:
225 222
-32767 32765
مثال على العمليات الحسابية:
// Các phép tính số học có thể có đối với số nguyên
// Tác giả : Chhanda Saha
package main
import "fmt"
func main() {
var x int16 = 170
var y int16 = 83
//Cộng
fmt.Printf(" addition : %d + %d = %d\n ", x, y, x+y)
//Trừ
fmt.Printf("subtraction : %d - %d = %d\n", x, y, x-y)
//Nhân
fmt.Printf(" multiplication : %d * %d = %d\n", x, y, x*y)
//Chia
fmt.Printf(" division : %d / %d = %d\n", x, y, x/y)
//Mô đun
fmt.Printf(" remainder : %d %% %d = %d\n", x, y, x%y)
}
نتيجة:
Cộng : 170 + 83 = 253
Trừ : 170 - 83 = 87
Nhân : 170 * 83 = 14110
Chia : 170 / 83 = 2
Số dư : 170 % 83 = 4
- الأرقام العائمة: في لغة Go، تنقسم الأرقام العائمة إلى نوعين كما هو موضح في الجدول أدناه.
- يمكن أن تكون العمليات الحسابية: الجمع، الطرح، الضرب، القسمة.
- هناك ثلاثة خطوط:
- العدد العشري (3.15)
- القوة (12e18 أو 3e10)
- مختلط (13.16e12)
| نوع البيانات |
يصف
|
| تعويم 32 |
رقم فاصل عائم IEEE 754 مكون من 32 بت |
| تعويم 64 |
رقم فاصل عائم 64 بت IEEE 754 |
على سبيل المثال:
//Minh họa chương trình Go dùng số dấu chấm động
package main
import "fmt"
func main() {
a := 20.45
b := 34.89
// Phép trừ hai số dấu chấm động
c := b-a
// Hiện kết quả
fmt.Printf("Result is: %f", c)
// Hiện kiểu biến C
fmt.Printf("\nThe type of c is : %T", c)
}
نتيجة:
Kết quả: 14.440000
Kiểu của C là : float64
مثال على العمليات الحسابية للأرقام العشرية:
// Các phép toán số học có thể có cho số thực
// Tác giả : Chhanda Saha
package main
import "fmt"
func main() {
var x float32 = 5.00
var y float32 = 2.25
//Phép cộng
fmt.Printf("addition : %g + %g = %g\n ", x, y, x+y)
//Phép trừ
fmt.Printf("subtraction : %g - %g = %g\n", x, y, x-y)
//Phép nhân
fmt.Printf("multiplication : %g * %g = %g\n", x, y, x*y)
//Phép chia
fmt.Printf("division : %g / %g = %g\n", x, y, x/y)
}
نتيجة:
Phép cộng : 5 + 2.25 = 7.25
Phép trừ : 5 - 2.25 = 2.75
Phép nhân : 5 * 2.25 = 11.25
Phép chia : 5 / 2.25 = 2.2222223
- الأعداد المركبة: تنقسم الأعداد المركبة إلى قسمين، كما هو موضح في الجدول أدناه.
float32وهو float64أيضًا جزء من هذه الأعداد المركبة. تقوم دالة التكامل بتوليد عدد مركب من أجزائه التخيلية والحقيقية، ثم تقوم دالة التكامل باستخراج تلك الأجزاء.
- هناك العديد من الوظائف المضمنة في الأعداد المركبة:
- معقد – إنشاء رقم معقد من عددين عائمين.
- real() – يحصل على الجزء الحقيقي من الرقم المركب المدخل كعدد عشري.
- imag() – الحصول على الجزء التخيلي من الرقم المركب المدخل كعدد عشري
| نوع البيانات |
يصف
|
| مجمع64 |
تحتوي الأعداد المركبة على float32 كمكونات حقيقية وتخيلية. |
| مجمع 128 |
تحتوي الأعداد المركبة على float64 كمكونات حقيقية وتخيلية. |
على سبيل المثال:
// Chương trình Go dùng số phức
package main
import "fmt"
func main() {
var a complex128 = complex(6, 2)
var b complex64 = complex(9, 2)
fmt.Println(a)
fmt.Println(b)
// Hiện kiểu
fmt.Printf("The type of a is %T and "+
"the type of b is %T", a, b)
}
نتيجة:
(6+2i)
(9+2i)
Kiểu của a là complex128, kiểu của b là complex64
أمثلة على الوظائف المضمنة:
// Các hàm tích hợp là số phức
// Tác giả : Chhanda Saha
package main
import "fmt"
func main() {
comp1 := complex(10, 11)
// cú pháp init số phức
comp2 := 13 + 33i
fmt.Println("Complex number 1 is :", comp1)
fmt.Println("Complex number 1 is :", comp2)
// lấy phần real
realNum := real(comp1)
fmt.Println("Real part of complex number 1:", realNum)
// lấy phần hình ảnh
imaginary := imag(comp2)
fmt.Println("Imaginary part of complex number 2:", imaginary)
}
نتيجة:
Số phức 1 là: (10+11i)
Số phức 1 là: (13+33i)
Phần thực của số phức 1: 10
Phần ảo của số phức 2: 33
منطقي
يمثل نوع البيانات المنطقي بتًا واحدًا فقط من المعلومات التي تكون إما صحيحة أو خاطئة. لا يتم تحويل القيم من النوع البولياني ضمناً أو صراحةً إلى أي نوع آخر.
على سبيل المثال:
//Minh họa chương trình dùng boolean
package main
import "fmt"
func main() {
// Các biến
str1 := "Quantrimang"
str2:= "quantrimang"
str3:= "Quantrimang"
result1:= str1 == str2
result2:= str1 == str3
// Hiện kết quả
fmt.Println( result1)
fmt.Println( result2)
// Hiện kiểu của result1 và result2
fmt.Printf("Kiểu của result1 là %T và "+
"kiểu của result2 là %T",
result1, result2)
}
نتيجة:
false
true
Kiểu của result1 là bool và kiểu của result2 là bool
سلسلة
يمثل نوع بيانات السلسلة تسلسلًا من نقاط رمز Unicode. بعبارة أخرى، يمكننا القول أن السلسلة هي عبارة عن تسلسل ثابت من البايتات، مما يعني أنه بمجرد إنشاء سلسلة، لا يمكنك تغييرها. يمكن أن تحتوي السلاسل على بيانات عشوائية، بما في ذلك البايتات ذات القيمة الصفرية في نموذج قابل للقراءة من قبل البشر. يمكن ربط السلاسل باستخدام عامل الجمع (+).
على سبيل المثال:
// Chương trình Go dùng chuỗi
package main
import "fmt"
func main() {
// Biến str chứa chuỗi
str := "Quantrimang"
// Hiện độ dài của chuỗi
fmt.Printf("Length of the string is:%d",
len(str))
// Hiện chuỗi
fmt.Printf("\nString is: %s", str)
// Hiện kiểu biến str
fmt.Printf("\nType of str is: %T", str)
}
نتيجة:
Chiều dài của chuỗi là: 13
Chuỗi là: Quantrimang
Kiểu của chuỗi là: chuỗi
مثال على ربط السلسلة:
// Nối chuỗi
// Tác giả : Chhanda Saha
package main
import "fmt"
func main() {
var str1 string = "STRING_"
var str2 string = "Concatenation"
// Nối chuỗi bằng toán tử +
fmt.Println("New string : ", str1+str2)
}
نتيجة:
New string : STRING_Concatenation