คำสั่ง 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 ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ
บทเรียนทั้งหมดในหลักสูตรนี้
- คำสั่ง if และนิพจน์เริ่มต้น
- ลูป for: รูปแบบทั้งหมด
- คำสั่ง switch ใน Go
- break, continue และป้ายกำกับ