ประเภทข้อมูลระบุประเภทข้อมูลที่ ตัวแปร Golangที่ถูกต้อง สามารถมี ได้ ในภาษา Go ประเภทจะถูกแบ่งออกเป็นสี่ประเภทดังต่อไปนี้:

- ประเภทพื้นฐาน: ตัวเลข สตริง และค่าบูลีน
- ประเภทการรวม: อาร์เรย์และโครงสร้าง
- ประเภทการอ้างอิง: ตัวชี้ สไลซ์ แผนที่ ฟังก์ชัน และช่องทาง
- ประเภทอินเทอร์เฟซ
ที่นี่เราจะหารือเกี่ยวกับประเภทข้อมูลพื้นฐานในภาษา Go แบ่งเป็น 3 หมวดหมู่ย่อย:
ชนิดข้อมูลทั่วไปใน Golang
ตัวเลขในโกลัง
ในภาษา Go ตัวเลขจะถูกแบ่งออกเป็น 3 หมวดหมู่ย่อย:
จำนวนเต็ม: ในภาษา Go จำนวนเต็มทั้งแบบมีเครื่องหมายและไม่มีเครื่องหมายจะมีสี่ขนาดที่แตกต่างกัน ดังแสดงในตารางด้านล่าง เลขจำนวนเต็มที่มีเครื่องหมายจะแสดงโดยintและเลขจำนวนเต็มที่ไม่มีเครื่องหมายจะแสดงuintโดย
การดำเนินการทางคณิตศาสตร์ที่เป็นไปได้: การบวก การลบ การคูณ การหาร เศษเหลือ
|
ประเภทข้อมูล
|
อธิบาย
|
| อินท์8 |
เลขจำนวนเต็มที่มีเครื่องหมาย 8 บิต |
| อินท์16 |
เลขจำนวนเต็มที่มีเครื่องหมาย 16 บิต |
| อินท์32 |
จำนวนเต็มที่มีเครื่องหมาย 32 บิต |
| int64 |
จำนวนเต็มที่มีเครื่องหมาย 64 บิต |
| ยูอินต์8 |
จำนวนเต็มไม่มีเครื่องหมาย 8 บิต |
| 16 มิ.ย. |
จำนวนเต็ม 1 6 บิตที่ไม่มีเครื่องหมาย |
| ยูอินท์32 |
จำนวนเต็มไม่มีเครื่องหมาย 32 บิต |
| ยูอินท์64 |
จำนวนเต็มไม่มีเครื่องหมาย 64 บิต |
| ภายใน |
ทั้งแบบไม่มีเครื่องหมายและมีเครื่องหมายมีขนาดเท่ากันคือ 32 หรือ 64 บิต |
| ยูอินท์ |
ทั้งแบบไม่มีเครื่องหมายและมีเครื่องหมายมีขนาดเท่ากันคือ 32 หรือ 64 บิต |
| รูน |
นี่เป็นคำพ้องความหมายสำหรับ int32 และยังแสดงถึงจุดโค้ด Unicode อีกด้วย |
| ไบต์ |
นี่คือคำพ้องความหมายสำหรับ uint8 |
| ยูอินท์พีทีอาร์ |
นี่เป็นประเภทจำนวนเต็มแบบไม่มีเครื่องหมาย ความกว้างนั้นไม่มีการกำหนด แต่สามารถเก็บบิตของค่าตัวชี้ทั้งหมดได้ |
ตัวอย่างเช่น:
// 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 |
ตัวเลขจุดลอยตัว IEEE 754 64 บิต |
ตัวอย่างเช่น:
//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