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

คำสั่ง if และนิพจน์เริ่มต้น

สร้างเงื่อนไขด้วยคำสั่งเริ่มต้นที่เลือกใส่ได้

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

คำสั่ง if ใน Go

คำสั่ง if ของ Go จะประเมินนิพจน์บูลีน — ไม่จำเป็นต้องใส่วงเล็บ แต่ต้องใส่วงเล็บปีกกา:

if x > 0 {
    // positive
}

คำสั่ง else และ else if

เชื่อมเงื่อนไขด้วย else if และจัดการกรณีสำรองด้วย else:

func classify(n int) string {
    if n < 0 {
        return "negative"
    } else if n == 0 {
        return "zero"
    } else {
        return "positive"
    }
}

คำสั่ง if พร้อมคำสั่งเริ่มต้น

Go อนุญาตให้มีคำสั่งเริ่มต้นที่ไม่บังคับก่อนเงื่อนไข — เหมาะอย่างยิ่งสำหรับกำหนดขอบเขตของตัวแปรชั่วคราว:

if err := doSomething(); err != nil {
    // err is only in scope here
    return err
}

การกำหนดขอบเขตด้วยคำสั่งเริ่มต้น

ตัวแปรที่ประกาศในคำสั่งเริ่มต้นจะมีขอบเขตอยู่ภายในบล็อก if/else เท่านั้น วิธีนี้ป้องกันไม่ให้ตัวแปรรั่วไหลไปยังฟังก์ชันโดยรอบ:

func process(id int) error {
    if val, err := lookup(id); err != nil {
        return err
    } else {
        use(val) // val is in scope here
    }
    return nil
}

นิพจน์บูลีน

เงื่อนไขของ Go ต้องเป็นค่า bool — ไม่มีการแปลงโดยอัตโนมัติ:

  • ถูกต้อง: if count != 0
  • ไม่ถูกต้อง: if count — Go จะเกิดข้อผิดพลาดระหว่างการคอมไพล์ (ต่างจาก C/JavaScript)
  • วิธีนี้ป้องกันข้อผิดพลาดแบบค่าคลาดจากหนึ่งและข้อผิดพลาดจากการอ้างอิงค่า nil ที่พบบ่อย

การตรวจสอบค่า nil

ตรวจสอบพอยน์เตอร์ สไลซ์ แมป และข้อผิดพลาดที่เป็น nil ด้วย == nil:

func greet(name *string) string {
    if name == nil {
        return "Hello, stranger"
    }
    return "Hello, " + *name
}

รูปแบบการคืนค่าก่อนกำหนด

Go สนับสนุนการคืนค่าก่อนกำหนดอย่างมากเพื่อลดการซ้อนบล็อก ทำให้เส้นทางการทำงานปกติอยู่ชิดขอบซ้าย:

func save(user User) error {
    if user.Name == "" {
        return errors.New("name required")
    }
    if user.Age < 0 {
        return errors.New("invalid age")
    }
    return db.Insert(user)
}

การรวมเงื่อนไข

ใช้ && และ || เพื่อรวมเงื่อนไข การประเมินแบบลัดวงจรจะมีผล — ส่วนด้านขวาจะถูกประเมินเมื่อจำเป็นเท่านั้น:

if user != nil && user.IsActive() {
    sendEmail(user)
}

if เทียบกับ switch

เมื่อมีหลายเงื่อนไขที่ตรวจสอบตัวแปรเดียวกัน โดยทั่วไป switch จะอ่านง่ายกว่า ให้ใช้ if เมื่อ:

  • เงื่อนไขเป็นนิพจน์บูลีนที่เป็นอิสระต่อกัน
  • ต้องการใช้คำสั่งเริ่มต้นร่วมกับการตรวจสอบข้อผิดพลาด
  • มีเพียง 1–2 แขนง

การหลีกเลี่ยงพีระมิด if-else

บล็อก if-else ที่ซ้อนกันลึกทำให้อ่านได้ยาก แก้ปัญหานี้ด้วย:

  • การคืนค่าก่อนกำหนด
  • คำสั่ง switch สำหรับหลายกรณี
  • แยกตรรกะออกเป็นฟังก์ชันขนาดเล็กลง
  • ข้อกำหนดเฝ้าระวังที่ด้านบนของฟังก์ชัน

คำถามทบทวน

คำสั่ง if ของ Go มีลักษณะเฉพาะใดเมื่อเทียบกับ C

สรุป: คำสั่ง if

คำสั่ง if ของ Go มีประสิทธิภาพและกระชับ:

  • ไม่ต้องใส่วงเล็บรอบเงื่อนไข — แต่ต้องใส่วงเล็บปีกกา
  • คำสั่งเริ่มต้นจะกำหนดขอบเขตตัวแปรให้อยู่ในบล็อก if/else
  • เงื่อนไขต้องเป็น bool อย่างเคร่งครัด
  • ควรใช้การคืนค่าก่อนกำหนดแทนการซ้อนบล็อกลึก
  • ใช้ &&/|| ร่วมกับการประเมินแบบลัดวงจร

ถัดไป: ลูป for อเนกประสงค์ของ Go

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

บทเรียน “คำสั่ง if และนิพจน์เริ่มต้น” ฟรีหรือไม่

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

คุณจะเรียนรู้อะไรในบทเรียน “คำสั่ง if และนิพจน์เริ่มต้น”

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

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

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

บทเรียน “คำสั่ง if และนิพจน์เริ่มต้น” ใช้เวลานานแค่ไหน

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

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

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

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

  1. คำสั่ง if และนิพจน์เริ่มต้น
  2. ลูป for: รูปแบบทั้งหมด
  3. คำสั่ง switch ใน Go
  4. break, continue และป้ายกำกับ
← กลับไปที่ Go Academy