คำสำคัญ Defer ใน Golang

ใน Go คำสั่ง deferจะทำให้การดำเนินการของฟังก์ชันหรือวิธีการหรือวิธีการที่ไม่ระบุชื่อล่าช้าจนกว่าฟังก์ชันใกล้เคียงจะกลับมา กล่าวอีกนัยหนึ่ง อาร์กิวเมนต์ในการเลื่อนฟังก์ชันหรือวิธีการจะได้รับการประเมินทันที แต่จะไม่ดำเนินการจนกว่าฟังก์ชันใกล้เคียงจะส่งคืน คุณสามารถสร้างวิธีการที่เลื่อนออกไป ฟังก์ชัน หรือฟังก์ชันที่ไม่ระบุชื่อได้โดยใช้คำสำคัญ defer

คำสำคัญ Defer ใน Golang

รูปแบบประโยค :

// Hàm
defer func func_name(parameter_list Type)return_type{
// Code
}

// Phương thức
defer func (receiver Type) method_name(parameter_list){
// Code
}

defer func (parameter_list)(return_type){
// code
}()

หมายเหตุสำคัญ:

  • ในภาษา Go อนุญาตให้มีคำสั่ง defer หลายคำสั่งในโปรแกรมเดียวกัน และจะดำเนินการตามลำดับ LIFO (Last-In, First-Out) ดังที่แสดงในตัวอย่างที่ 2
  • ในคำสั่ง defer อาร์กิวเมนต์จะได้รับการประเมินเมื่อมีการดำเนินการคำสั่ง defer ไม่ใช่เมื่อมีการเรียกใช้
  • คำสั่ง Defer มักใช้เพื่อให้แน่ใจว่าไฟล์ถูกปิดเมื่อถึงเวลาใช้งาน หรือเพื่อปิดช่อง หรือเพื่อตรวจจับปัญหาในโปรแกรม

มาดูตัวอย่างเพื่อให้เข้าใจดีขึ้นกันดีกว่า

ตัวอย่างที่ 1:

// Chương trình Go minh họa
// khái niệm của lệnh defer
package main

import "fmt"

// Các hàm
func mul(a1, a2 int) int {

	res := a1 * a2
	fmt.Println("Result: ", res)
	return 0
}

func show() {
	fmt.Println("Hello!, Quantrimang.com")
}

// Hàm chính
func main() {

	// Gọi hàm mul() 
	// Tại đây hàm mul hoạt động
	// như một hàm bình thường
	mul(23, 45)

	// Gọi hàm mul()
	// Dùng từ khóa defer 
	// Hàm the mul() 
	// là hàm defer
	defer mul(23, 56)

	// Gọi hàm show() 
	show()
}

ผลลัพธ์:

Result:  1035
Hello!, Quantrimang.com
Result:  1288

คำอธิบาย:ในตัวอย่างข้างต้น เรามีฟังก์ชันสองฟังก์ชันชื่อmul()และshow( ) ในขณะที่ ฟังก์ชัน show()จะถูกเรียกตามปกติใน ฟังก์ชัน main()ฟังก์ชันmul()จะถูกเรียกในสองวิธีที่แตกต่างกัน:

  • ขั้นแรก เราเรียกใช้ฟังก์ชัน mul ตามปกติ (โดยไม่ใช้คำสำคัญ defer) นั่นคือ mul(23, 45) และจะดำเนินการเมื่อเรียกใช้ฟังก์ชัน (เอาต์พุต: ผลลัพธ์: 1035)
  • ประการที่สอง เราเรียกใช้ฟังก์ชัน mul() เป็นฟังก์ชัน defer โดยใช้คีย์เวิร์ด defer นั่นคือ defer mul(23, 56) และจะดำเนินการ (เอาต์พุต: ผลลัพธ์: 1288) เมื่อส่งคืนวิธีการโดยรอบทั้งหมด

ตัวอย่างที่ 2:

// Minh họa chương trình Go
// dùng nhiều lệnh defer, để minh họa chính sách LIFO 
package main

import "fmt"

// Các hàm
func add(a1, a2 int) int {
	res := a1 + a2
	fmt.Println("Result: ", res)
	return 0
}

// Hàm chính
func main() {

	fmt.Println("Start")

	// Nhiều lệnh defer
	// Triển khai theo thứ tự LIFO 
	defer fmt.Println("End")
	defer add(34, 56)
	defer add(10, 10)
}

ผลลัพธ์:

Start
Result:  20
Result:  90
End

ฝากความเห็น

การแก้ไขปัญหาแท็บข้อผิดพลาดของ Microsoft Teams Planner

การแก้ไขปัญหาแท็บข้อผิดพลาดของ Microsoft Teams Planner

ติดปัญหาแท็บ Planner ใน Microsoft Teams ใช่ไหม? มาดูวิธีแก้ไขปัญหาทีละขั้นตอนสำหรับปัญหาทั่วไป เช่น การโหลดล้มเหลว ข้อผิดพลาดด้านสิทธิ์ และปัญหาการซิงค์ ทำให้แท็บ Planner ของคุณใช้งานได้อย่างราบรื่นใน Teams ได้แล้ววันนี้

การแก้ไขปัญหาข้อผิดพลาดในการโทรวิดีโอของ Microsoft Teams

การแก้ไขปัญหาข้อผิดพลาดในการโทรวิดีโอของ Microsoft Teams

กำลังประสบปัญหาเกี่ยวกับการโทรผ่านวิดีโอใน Microsoft Teams อยู่ใช่ไหม? ค้นพบวิธีแก้ไขปัญหาแบบทีละขั้นตอนที่ได้รับการพิสูจน์แล้ว สำหรับปัญหาเกี่ยวกับวิดีโอ ปัญหาเกี่ยวกับกล้อง และอื่นๆ อีกมากมาย กลับมาโทรได้อย่างราบรื่นในไม่กี่นาที!

การแก้ไขปัญหา Microsoft Teams ข้อผิดพลาดของ Microsoft ใน Teams

การแก้ไขปัญหา Microsoft Teams ข้อผิดพลาดของ Microsoft ใน Teams

เบื่อไหมกับปัญหาข้อผิดพลาดของ Microsoft ที่ทำให้ Microsoft Teams ของคุณล่ม? พบกับขั้นตอนการแก้ไขปัญหาข้อผิดพลาดของ Microsoft Teams ทีละขั้นตอน ตั้งแต่การล้างแคชไปจนถึงวิธีแก้ไขขั้นสูง กลับมาทำงานร่วมกันได้อย่างราบรื่นอีกครั้งในวันนี้!

การแก้ไขปัญหาข้อผิดพลาดในการเข้าสู่ระบบ Microsoft Teams บน Chromebook

การแก้ไขปัญหาข้อผิดพลาดในการเข้าสู่ระบบ Microsoft Teams บน Chromebook

ติดปัญหาการเข้าสู่ระบบ Microsoft Teams บน Chromebook ใช่ไหม? คู่มือการแก้ไขปัญหาฉบับสมบูรณ์ของเราจะช่วยคุณแก้ไขปัญหาได้อย่างรวดเร็วและเชื่อถือได้ ไม่ว่าจะเป็นปัญหาเกี่ยวกับแคช การอัปเดต และอื่นๆ แก้ปัญหาได้ภายในไม่กี่นาทีและเชื่อมต่อได้อย่างต่อเนื่อง!

วิธีแก้ไขข้อผิดพลาดในการดาวน์โหลด Microsoft Teams สำหรับพีซี

วิธีแก้ไขข้อผิดพลาดในการดาวน์โหลด Microsoft Teams สำหรับพีซี

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

การแก้ไขปัญหาอาการหน่วงของการประชุมทางวิดีโอ Microsoft Teams บน Wi-Fi

การแก้ไขปัญหาอาการหน่วงของการประชุมทางวิดีโอ Microsoft Teams บน Wi-Fi

กำลังประสบปัญหาภาพกระตุกขณะใช้งาน Microsoft Teams ผ่าน Wi-Fi อยู่ใช่ไหม? คู่มือแก้ไขปัญหาฉบับสมบูรณ์นี้จะนำเสนอวิธีแก้ไขปัญหาอย่างรวดเร็ว เคล็ดลับขั้นสูง และการปรับแต่ง Wi-Fi เพื่อให้การสนทนาทางวิดีโอของคุณกลับมาคมชัดอีกครั้งในทันที

การแก้ไขปัญหาการวนซ้ำขณะเริ่มต้นใช้งานหน้าจอต้อนรับของ Microsoft Teams

การแก้ไขปัญหาการวนซ้ำขณะเริ่มต้นใช้งานหน้าจอต้อนรับของ Microsoft Teams

รู้สึกหงุดหงิดกับการวนลูปของหน้าจอต้อนรับใน Microsoft Teams ใช่ไหม? ลองทำตามขั้นตอนการแก้ไขปัญหาการวนลูปของหน้าจอต้อนรับใน Microsoft Teams ที่เราแนะนำ: ล้างแคช รีเซ็ตแอป และติดตั้งใหม่ กลับมาใช้งานร่วมกันได้อย่างราบรื่นภายในไม่กี่นาที!

ทำไมสถานะใน Microsoft Teams ของฉันถึงค้างอยู่ที่ ไม่อยู่?

ทำไมสถานะใน Microsoft Teams ของฉันถึงค้างอยู่ที่ ไม่อยู่?

รู้สึกหงุดหงิดกับสถานะ "ไม่อยู่" ใน Microsoft Teams ที่ค้างอยู่ใช่ไหม? พบกับสาเหตุหลักๆ เช่น การหมดเวลาการใช้งาน และการตั้งค่าพลังงาน พร้อมวิธีแก้ไขทีละขั้นตอนเพื่อให้กลับมาเป็น "พร้อมใช้งาน" ได้อย่างรวดเร็ว อัปเดตด้วยฟีเจอร์ Teams ล่าสุดแล้ว

เหตุใดส่วนเสริม Microsoft Teams จึงหายไปจาก Outlook ของฉัน?

เหตุใดส่วนเสริม Microsoft Teams จึงหายไปจาก Outlook ของฉัน?

รู้สึกหงุดหงิดเพราะปลั๊กอิน Microsoft Teams หายไปจาก Outlook ใช่ไหม? มาดูสาเหตุหลักและวิธีแก้ไขง่ายๆ ทีละขั้นตอน เพื่อให้การใช้งาน Teams และ Outlook กลับมาราบรื่นอีกครั้งโดยไม่ต้องยุ่งยาก ใช้งานได้กับเวอร์ชันล่าสุด!

วิธีแก้ไขข้อผิดพลาดในการเล่นสื่อของ Microsoft Teams ในปี 2026

วิธีแก้ไขข้อผิดพลาดในการเล่นสื่อของ Microsoft Teams ในปี 2026

เบื่อกับปัญหาการเล่นสื่อใน Microsoft Teams ที่ทำให้การประชุมปี 2026 ของคุณเสียบรรยากาศใช่ไหม? ทำตามคำแนะนำทีละขั้นตอนจากผู้เชี่ยวชาญของเราเพื่อแก้ไขปัญหาเสียง วิดีโอ และการแชร์ได้อย่างรวดเร็ว โดยไม่ต้องมีความรู้ด้านเทคนิคใดๆ การทำงานร่วมกันอย่างราบรื่นรอคุณอยู่!