ชนิดข้อมูลในตัวของ Go
int, float64, string, bool และค่าเริ่มต้นศูนย์ของแต่ละชนิด
ชนิดข้อมูลในตัวของ Go เป็นบทเรียน Go Academy ฟรีบน CoddyKit นี่คือบทเรียนที่ 2 จากทั้งหมด 4 บทเรียน คุณสามารถอ่านบทเรียนทั้งหมดด้านล่างฟรี — จากนั้นลองปฏิบัติด้วยตัวคุณเองในเบราว์เซอร์พร้อมตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7 บทเรียนนี้เป็นส่วนหนึ่งของเส้นทางการเรียน Go Academy และความก้าวหน้าของคุณจะซิงค์ข้ามเว็บและแอป CoddyKit คอร์ส Go Academy มีบทเรียนทั้งหมด 4 บทเรียน
ภาพรวมระบบชนิดของ Go
Go มีชนิดในตัวจำนวนมาก ซึ่งจัดเป็นหมวดหมู่ดังนี้:
- บูลีน:
bool - จำนวนเต็ม:
int,int8,int16,int32,int64และชนิดไม่มีเครื่องหมายที่สอดคล้องกัน - จำนวนทศนิยม:
float32,float64 - สตริง:
string - จำนวนเชิงซ้อน:
complex64,complex128
ชนิดจำนวนเต็ม
Go มีชนิดจำนวนเต็มทั้งแบบขึ้นกับแพลตฟอร์มและแบบกำหนดขนาดตายตัว:
int/uint— ขนาดขึ้นกับแพลตฟอร์ม (32 หรือ 64 บิต)int8…int64— ความกว้างบิตตายตัวbyte— ชื่อแทนของuint8rune— ชื่อแทนของint32ใช้แทนจุดรหัส Unicode
ใช้ int สำหรับจำนวนเต็มทั่วไป เว้นแต่คุณต้องการความกว้างเฉพาะ
float64 และ float32
ชนิดจำนวนทศนิยมเป็นไปตามมาตรฐาน IEEE 754:
package main
func main() {
var f32 float32 = 3.14
var f64 float64 = 3.141592653589793
ratio := f64 / 2.0 // float64 inferred
_ = f32
_ = ratio
}ชนิด string
สตริงใน Go คือลำดับไบต์ที่เปลี่ยนแปลงไม่ได้ซึ่งเข้ารหัสด้วย UTF-8:
- ใส่เครื่องหมายอัญประกาศคู่:
"Hello"— รองรับลำดับหลีก - ใส่เครื่องหมายแบ็กทิก:
`raw string`— ไม่ประมวลผลลำดับหลีก และเขียนข้ามบรรทัดได้ len(s)คืนค่าจำนวนไบต์ ไม่ใช่จำนวนอักขระ- วนอ่านอักขระด้วย
rangeเพื่อรับค่า rune
ชนิด bool
ชนิด bool มีสองค่า: true และ false
- ค่าศูนย์คือ
false - ตัวดำเนินการตรรกะ:
&&,||,! - ตัวดำเนินการเปรียบเทียบคืนค่า bool:
==,!=,<,> - Go ไม่แปลงจำนวนเต็มเป็น bool โดยปริยาย (ต่างจาก C)
สรุปค่าศูนย์
ทุกชนิดมีค่าศูนย์ที่กำหนดไว้อย่างชัดเจน:
intและชนิดตัวเลขทั้งหมด →0float64→0.0string→""bool→false*T, สไลซ์, แมป, แชน และฟังก์ชัน →nil
ค่าศูนย์ทำให้โค้ด Go ปลอดภัย — คุณจะไม่อ่านข้อมูลขยะจากหน่วยความจำ
ลิเทอรัลตัวเลข
Go รองรับรูปแบบลิเทอรัลตัวเลขหลายรูปแบบ:
package main
func main() {
dec := 1_000_000 // digit separators
hex := 0xFF
oct := 0o777
bin := 0b1010
sci := 1.5e3 // 1500.0
_ = dec; _ = hex; _ = oct; _ = bin; _ = sci
}ขนาดและช่วงค่าของชนิด
การทราบขนาดของชนิดช่วยป้องกันข้อผิดพลาดค่าล้น:
int8: -128 ถึง 127uint8: 0 ถึง 255int16: -32768 ถึง 32767int32: ประมาณ ±2.1 พันล้านint64: ประมาณ ±9.2 ล้านล้านล้าน
ใช้ math.MaxInt64 และค่าคงที่ลักษณะเดียวกันจากแพ็กเกจ math เพื่อระบุขอบเขตที่แน่นอน
rune และ byte
rune และ byte เป็นชื่อแทนชนิดที่มีความหมายเชิงการใช้งาน:
byte=uint8— ใช้กับข้อมูลไบนารีดิบหรือข้อมูล ASCIIrune=int32— ใช้แทนจุดรหัส Unicode
เมื่อวนอ่านสตริงด้วย range Go จะส่งคืนค่า rune ซึ่งเหมาะอย่างยิ่งสำหรับการทำงานกับอักขระ UTF-8 แบบหลายไบต์ เช่น อีโมจิ
การเลือกชนิดที่เหมาะสม
แนวทางสำหรับการเลือกชนิดตัวเลข:
- เลือก
intเป็นค่าเริ่มต้นสำหรับตัวนับและดัชนี - ใช้
float64สำหรับการคำนวณจำนวนทศนิยมทั่วไป - ใช้
int64/uint64สำหรับรหัสประจำตัว การประทับเวลา และจำนวนที่มีค่ามาก - ใช้
int32เฉพาะเมื่อต้องเชื่อมต่อกับ API ที่กำหนดให้ใช้ชนิดนี้ - หลีกเลี่ยง
float32เว้นแต่จะทำงานด้านกราฟิกหรือข้อมูลที่ต้องจำกัดพื้นที่จัดเก็บ
ตรวจสอบความเข้าใจอย่างรวดเร็ว
ค่าศูนย์ของตัวแปร string ใน Go คืออะไร
ทบทวน: ชนิดในตัว
ชนิดในตัวของ Go เป็นพื้นฐานที่มั่นคงสำหรับคุณ:
- กลุ่มจำนวนเต็ม:
int,int64,byte,rune - จำนวนทศนิยม: ควรเลือกใช้
float64 stringคือลำดับไบต์ UTF-8 ที่เปลี่ยนแปลงไม่ได้boolพร้อมค่าtrue/false- ทุกชนิดมีค่าศูนย์ — ไม่มีเรื่องไม่คาดคิด
ถัดไป: ค่าคงที่และตัวแจกแจง iota อันทรงพลัง
โจทย์ฝึกปฏิบัติ
ทดลอง: ประกาศตัวแปร rune ที่เก็บตัวอักษร 'A' และตัวแปร byte ที่เก็บค่า 65 จากนั้นพิมพ์ค่าทั้งสอง — ค่าที่ได้ควรเป็นตัวเลขเดียวกัน แล้วลองวนอ่านสตริงอีโมจิสั้น ๆ เพื่อดูค่า rune ขณะทำงาน
คำถามที่พบบ่อย
บทเรียน “ชนิดข้อมูลในตัวของ Go” ฟรีหรือไม่
ใช่ — ข้อความเต็มของ “ชนิดข้อมูลในตัวของ Go” ฟรีให้อ่านที่นี่บนเว็บ เพื่อปฏิบัติแบบโต้ตอบ (ตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7) และปลดล็อคส่วนที่เหลือของคอร์ส Go Academy ให้อัปเกรดเป็น CoddyKit PRO คอร์ส Go Academy มีบทเรียนทั้งหมด 4 บทเรียน
คุณจะเรียนรู้อะไรในบทเรียน “ชนิดข้อมูลในตัวของ Go”
int, float64, string, bool และค่าเริ่มต้นศูนย์ของแต่ละชนิด คุณปฏิบัติ Go Academy ด้วยโค้ดที่ใช้งานได้จริงที่คุณเรียกใช้โดยตรงในเบราว์เซอร์ และติวเตอร์ AI ตลอด 24/7 ตอบคำถามของคุณขณะที่คุณไปผ่านบทเรียน
คุณต้องมีประสบการณ์ก่อนที่จะเริ่มเรียน Go Academy หรือไม่
ไม่จำเป็นต้องมีประสบการณ์มาก่อน Go Academy บน CoddyKit ออกแบบมาสำหรับผู้เริ่มต้นไปจนถึงผู้เรียนขั้นสูง คุณสามารถเริ่มต้นที่นี่หรือเริ่มจากตัวแรกและเรียนด้วยความเร็วของคุณเอง นี่คือบทเรียนที่ 2 จากทั้งหมด 4 บทเรียน
บทเรียน “ชนิดข้อมูลในตัวของ Go” ใช้เวลานานแค่ไหน
บทเรียน CoddyKit ส่วนใหญ่ใช้เวลาประมาณ 5–10 นาที แต่ละบทเรียนจึงสั้นและเป็นแบบโต้ตอบ คุณสามารถก้าวหน้าอย่างต่อเนื่องและกลับมาเรียนต่อจากตรงที่เพิ่งหยุดบนเว็บและแอปได้เลย
ฉันเขียนและรันโค้ดในบทเรียน Go Academy นี้ได้ไหม
ได้ บทเรียน Go Academy ทุกบทมีตัวแก้ไขโค้ดในตัว คุณจึงเขียนและรันโค้ดจริงได้เลยในเบราว์เซอร์ และได้รับข้อเสนอแนะจาก AI ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ
บทเรียนทั้งหมดในหลักสูตรนี้
- การประกาศตัวแปรใน Go
- ชนิดข้อมูลในตัวของ Go
- ค่าคงที่และ iota
- การแปลงชนิดข้อมูลใน Go