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

ค่าคงที่และ iota

กำหนดค่าคงที่และใช้ iota สำหรับการแจกแจงค่า

ค่าคงที่และ iota เป็นบทเรียน Go Academy ฟรีบน CoddyKit นี่คือบทเรียนที่ 3 จากทั้งหมด 4 บทเรียน คุณสามารถอ่านบทเรียนทั้งหมดด้านล่างฟรี — จากนั้นลองปฏิบัติด้วยตัวคุณเองในเบราว์เซอร์พร้อมตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7 บทเรียนนี้เป็นส่วนหนึ่งของเส้นทางการเรียน Go Academy และความก้าวหน้าของคุณจะซิงค์ข้ามเว็บและแอป CoddyKit คอร์ส Go Academy มีบทเรียนทั้งหมด 4 บทเรียน

ค่าคงที่คืออะไร

ค่าคงที่เก็บค่าที่ไม่เปลี่ยนแปลงขณะทำงาน

  • ประกาศด้วย const
  • ต้องคำนวณได้ตั้งแต่ขณะคอมไพล์
  • อาจมีชนิดหรือไม่มีชนิดก็ได้
  • อนุญาตให้ใช้ลิเทอรัลสตริง บูลีน ตัวเลข และ rune

ค่าคงที่มีชนิดเทียบกับไม่มีชนิด

ค่าคงที่ที่ไม่มีชนิดมีความละเอียดสูงกว่าและยืดหยุ่นกว่า:

  • const Pi = 3.14159 — จำนวนทศนิยมไม่มีชนิด ปรับให้เข้ากับบริบทได้
  • const Pi float64 = 3.14159 — จำนวนทศนิยมชนิด float64
  • ค่าคงที่จำนวนเต็มที่ไม่มีชนิดสามารถใช้กับชนิดจำนวนเต็มใดก็ได้

นิพจน์ค่าคงที่

ค่าคงที่สามารถคำนวณจากค่าคงที่อื่นได้ตั้งแต่ขณะคอมไพล์:

const (
    KB = 1024
    MB = 1024 * KB
    GB = 1024 * MB
)

iota: ค่าที่เพิ่มขึ้นอัตโนมัติ

iota เป็นตัวนับในตัวที่เริ่มต้นใหม่เป็น 0 ในแต่ละบล็อก const และเพิ่มขึ้นทีละ 1 สำหรับค่าคงที่แต่ละตัวในบล็อก

const (
    Sunday = iota  // 0
    Monday          // 1
    Tuesday         // 2
    Wednesday       // 3
)

iota กับนิพจน์

ผสาน iota กับนิพจน์เพื่อสร้างการแจกแจงที่มีประสิทธิภาพ:

const (
    _  = iota             // skip 0
    KB = 1 << (10 * iota) // 1024
    MB                     // 1048576
    GB                     // 1073741824
)

ค่าคงที่สตริง

ค่าคงที่สตริงคือค่าสตริงที่เปลี่ยนแปลงไม่ได้และทราบค่าตั้งแต่ขณะคอมไพล์:

const (
    AppName    = "GoApp"
    AppVersion = "1.0.0"
    Greeting   = "Hello, " + AppName
)

ค่าคงที่บูลีน

true และ false เป็นค่าคงที่บูลีนที่ไม่มีชนิดซึ่งประกาศไว้ล่วงหน้าใน Go คุณสามารถกำหนดค่าคงที่ที่มีชนิดบูลีนของคุณเองสำหรับแฟล็กคุณลักษณะได้:

const (
    EnableMetrics = true
    DebugMode     = false
)

ค่าคงที่เทียบกับตัวแปร

ความแตกต่างที่สำคัญ:

  • ค่าคงที่เปลี่ยนแปลงไม่ได้ — การกำหนดค่าหลังการประกาศจะทำให้เกิดข้อผิดพลาดขณะคอมไพล์
  • ค่าคงที่ไม่สามารถใช้นิพจน์ที่ไม่ใช่ค่าคงที่ (เช่น การเรียกฟังก์ชัน)
  • ค่าคงที่มีประสิทธิภาพมากกว่า — คอมไพเลอร์อาจแทนค่าลงในโค้ดโดยตรง
  • ใช้ค่าคงที่แทนตัวเลขที่ไม่มีความหมายชัดเจนเพื่อให้อ่านโค้ดได้ง่ายขึ้น

ชนิดแจกแจงด้วย iota

สร้างการแจกแจงที่ปลอดภัยด้านชนิดโดยผสานชนิดที่กำหนดเข้ากับ iota:

type Direction int

const (
    North Direction = iota
    East
    South
    West
)

Stringer เพื่อให้อีนัมอ่านง่าย

ติดตั้งอินเทอร์เฟซ Stringer ให้กับชนิดอีนัม เพื่อให้พิมพ์ชื่อที่มนุษย์อ่านเข้าใจได้แทนจำนวนเต็มดิบ เครื่องมือ stringer สามารถสร้างโค้ดนี้ให้คุณโดยอัตโนมัติ

รูปแบบบิตมาสก์ด้วย iota

iota ร่วมกับการเลื่อนบิตใช้สร้างชุดแฟล็กได้:

type Permission uint

const (
    Read    Permission = 1 << iota // 1
    Write                          // 2
    Execute                        // 4
)

func main() {
    access := Read | Write // 3
    _ = access
}

ตรวจสอบความเข้าใจอย่างรวดเร็ว

iota เริ่มต้นที่ค่าใดในบล็อก const ใหม่แต่ละบล็อก

ทบทวน: ค่าคงที่และ iota

ตอนนี้คุณเข้าใจค่าคงที่ใน Go แล้ว:

  • const ใช้ประกาศค่าที่เปลี่ยนแปลงไม่ได้และกำหนดได้ตั้งแต่ขณะคอมไพล์
  • ค่าคงที่ที่ไม่มีชนิดมีความยืดหยุ่นและความละเอียดสูง
  • iota เพิ่มค่าอัตโนมัติภายในบล็อก const โดยเริ่มจาก 0
  • ผสาน iota กับนิพจน์เพื่อสร้างขนาดไฟล์ แฟล็กบิต และอีนัม
  • สร้างการแจกแจงที่ปลอดภัยด้านชนิดด้วยชนิดที่กำหนด + iota

ถัดไป: การแปลงชนิดอย่างชัดเจนและชื่อแทนชนิด

คำถามที่พบบ่อย

บทเรียน “ค่าคงที่และ iota” ฟรีหรือไม่

ใช่ — ข้อความเต็มของ “ค่าคงที่และ iota” ฟรีให้อ่านที่นี่บนเว็บ เพื่อปฏิบัติแบบโต้ตอบ (ตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7) และปลดล็อคส่วนที่เหลือของคอร์ส Go Academy ให้อัปเกรดเป็น CoddyKit PRO คอร์ส Go Academy มีบทเรียนทั้งหมด 4 บทเรียน

คุณจะเรียนรู้อะไรในบทเรียน “ค่าคงที่และ iota”

กำหนดค่าคงที่และใช้ iota สำหรับการแจกแจงค่า คุณปฏิบัติ Go Academy ด้วยโค้ดที่ใช้งานได้จริงที่คุณเรียกใช้โดยตรงในเบราว์เซอร์ และติวเตอร์ AI ตลอด 24/7 ตอบคำถามของคุณขณะที่คุณไปผ่านบทเรียน

คุณต้องมีประสบการณ์ก่อนที่จะเริ่มเรียน Go Academy หรือไม่

ไม่จำเป็นต้องมีประสบการณ์มาก่อน Go Academy บน CoddyKit ออกแบบมาสำหรับผู้เริ่มต้นไปจนถึงผู้เรียนขั้นสูง คุณสามารถเริ่มต้นที่นี่หรือเริ่มจากตัวแรกและเรียนด้วยความเร็วของคุณเอง นี่คือบทเรียนที่ 3 จากทั้งหมด 4 บทเรียน

บทเรียน “ค่าคงที่และ iota” ใช้เวลานานแค่ไหน

บทเรียน CoddyKit ส่วนใหญ่ใช้เวลาประมาณ 5–10 นาที แต่ละบทเรียนจึงสั้นและเป็นแบบโต้ตอบ คุณสามารถก้าวหน้าอย่างต่อเนื่องและกลับมาเรียนต่อจากตรงที่เพิ่งหยุดบนเว็บและแอปได้เลย

ฉันเขียนและรันโค้ดในบทเรียน Go Academy นี้ได้ไหม

ได้ บทเรียน Go Academy ทุกบทมีตัวแก้ไขโค้ดในตัว คุณจึงเขียนและรันโค้ดจริงได้เลยในเบราว์เซอร์ และได้รับข้อเสนอแนะจาก AI ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ

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

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