Skip to content

ประเภทข้อมูลใน Go

ด้านล่างแสดงประเภทในตัวทั้งหมดของภาษา Go เพื่อใช้อ้างอิง ดูรายละเอียดเพิ่มเติมได้ที่ คู่มืออ้างอิง-ประเภท

ประเภทบูลีน

ประเภทบูลีนมีเพียงค่าจริงและค่าเท็จ

ประเภทคำอธิบาย
booltrue เป็นค่าจริง false เป็นค่าเท็จ

TIP

ใน Go จำนวนเต็ม 0 ไม่ได้แทนค่าเท็จ และจำนวนเต็มที่ไม่ใช่ศูนย์ก็ไม่สามารถแทนค่าจริงได้ นั่นคือตัวเลขไม่สามารถใช้แทนค่าบูลีนในการตัดสินใจเชิงตรรกะ ทั้งสองเป็นประเภทที่ต่างกันโดยสิ้นเชิง

ประเภทจำนวนเต็ม

Go จัดสรรประเภทที่ต่างกันสำหรับจำนวนเต็มจำนวนบิตที่ต่างกัน แบ่งออกเป็นจำนวนเต็มไม่มีเครื่องหมายและจำนวนเต็มมีเครื่องหมายเป็นหลัก

ลำดับประเภทและคำอธิบาย
uint8จำนวนเต็ม 8 บิตไม่มีเครื่องหมาย
uint16จำนวนเต็ม 16 บิตไม่มีเครื่องหมาย
uint32จำนวนเต็ม 32 บิตไม่มีเครื่องหมาย
uint64จำนวนเต็ม 64 บิตไม่มีเครื่องหมาย
int8จำนวนเต็ม 8 บิตมีเครื่องหมาย
int16จำนวนเต็ม 16 บิตมีเครื่องหมาย
int32จำนวนเต็ม 32 บิตมีเครื่องหมาย
int64จำนวนเต็ม 64 บิตมีเครื่องหมาย
uintจำนวนเต็มไม่มีเครื่องหมาย อย่างน้อย 32 บิต
intจำนวนเต็ม อย่างน้อย 32 บิต
uintptrเทียบเท่ากับจำนวนเต็ม 64 บิตไม่มีเครื่องหมาย แต่ใช้เฉพาะสำหรับการดำเนินการพอยน์เตอร์ ใช้เก็บที่อยู่พอยน์เตอร์แบบคงที่

ประเภทจำนวนจริง

จำนวนจริง IEEE-754 แบ่งออกเป็นจำนวนจริงความแม่นยำเดี่ยวและจำนวนจริงความแม่นยำคู่

ประเภทคำอธิบาย
float32จำนวนจริง IEEE-754 32 บิต
float64จำนวนจริง IEEE-754 64 บิต

ประเภทจำนวนเชิงซ้อน

ประเภทคำอธิบาย
complex128จำนวนจริงและจำนวนจินตภาพ 64 บิต
complex64จำนวนจริงและจำนวนจินตภาพ 32 บิต

ประเภทอักขระ

สตริงในภาษา Go เข้ากันได้กับ UTF-8 อย่างสมบูรณ์

ประเภทคำอธิบาย
byteเทียบเท่า uint8 สามารถแสดงอักขระ ANSCII
runeเทียบเท่า int32 สามารถแสดงอักขระ Unicode
stringสตริงคือลำดับไบต์ สามารถแปลงเป็นประเภท []byte ได้ คือสไลซ์ไบต์

ประเภทอนุพันธ์

ประเภทตัวอย่าง
อาร์เรย์[5]int อาร์เรย์จำนวนเต็มความยาว 5
สไลซ์[]float64 สไลซ์จำนวนจริง 64 บิต
แมปmap[string]int แมปที่มีคีย์เป็นประเภทสตริง ค่าเป็นจำนวนเต็ม
สตรักเจอร์type Gopher struct{} สตรักเจอร์ Gopher
พอยน์เตอร์*int พอยน์เตอร์จำนวนเต็ม
ฟังก์ชันtype f func() ประเภทฟังก์ชันที่ไม่มีพารามิเตอร์ ไม่มีค่าส่งคืน
อินเทอร์เฟซtype Gopher interface{} อินเทอร์เฟซ Gopher
แชนเนลchan int แชนเนลจำนวนเต็ม

ค่าศูนย์

ในเอกสารทางการเรียกค่าศูนย์ว่า zero value ค่าศูนย์ไม่ใช่แค่ศูนย์ตัวเลขตามตัวอักษร แต่เป็นค่าว่างหรือค่าเริ่มต้นของประเภทหนึ่งๆ จะแม่นยำกว่า

ประเภทค่าศูนย์
ประเภทตัวเลข0
ประเภทบูลีนfalse
ประเภทสตริง""
อาร์เรย์ชุดค่าศูนย์ของประเภทที่ตรงกันความยาวคงที่
สตรักเจอร์สตรักเจอร์ที่ฟิลด์ภายในเป็นค่าศูนย์ทั้งหมด
สไลซ์ แมป ฟังก์ชัน อินเทอร์เฟซ แชนเนล พอยน์เตอร์nil

nil

nil คล้ายกับ none หรือ null ในภาษาอื่น แต่ไม่เท่ากัน nil เป็นเพียงค่าศูนย์ของประเภทอ้างอิงบางประเภทเท่านั้น และไม่屬於ประเภทใดๆ จากซอร์สโค้ดจะเห็นว่า nil เป็นเพียงตัวแปรหนึ่ง

go
var nil Type

และคำสั่งเช่น nil == nil ไม่สามารถผ่านการคอมไพล์ได้

Golang by www.golangdev.cn edit