0Pricing
Go Academy · บทเรียน

ชนิดข้อมูลในตัวของ 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 — ชื่อแทนของ uint8
  • rune — ชื่อแทนของ 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 และชนิดตัวเลขทั้งหมด → 0
  • float64 → 0.0
  • string → ""
  • 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 ถึง 127
  • uint8: 0 ถึง 255
  • int16: -32768 ถึง 32767
  • int32: ประมาณ ±2.1 พันล้าน
  • int64: ประมาณ ±9.2 ล้านล้านล้าน

ใช้ math.MaxInt64 และค่าคงที่ลักษณะเดียวกันจากแพ็กเกจ math เพื่อระบุขอบเขตที่แน่นอน

rune และ byte

rune และ byte เป็นชื่อแทนชนิดที่มีความหมายเชิงการใช้งาน:

  • byte = uint8 — ใช้กับข้อมูลไบนารีดิบหรือข้อมูล ASCII
  • rune = 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 ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ

บทเรียนทั้งหมดในหลักสูตรนี้

  1. การประกาศตัวแปรใน Go
  2. ชนิดข้อมูลในตัวของ Go
  3. ค่าคงที่และ iota
  4. การแปลงชนิดข้อมูลใน Go
← กลับไปที่ Go Academy