ใน Go ฟังก์ชันคือบล็อกของโค้ดที่ดำเนินการงานเฉพาะเจาะจง ซึ่งสามารถนำมาใช้ซ้ำได้ตลอดทั้งโปรแกรมเพื่อประหยัดหน่วยความจำ ปรับปรุงการอ่านง่าย และประหยัดเวลาฟังก์ชันGolang อาจจะส่งคืนค่าไปยังผู้เรียกหรือไม่ก็ได้

สิ่งที่ควรรู้เกี่ยวกับฟังก์ชันต่างๆ ใน Golang
ตัวอย่างเช่น:
package main
import "fmt"
// multiply() nhân 2 số nguyên và trả về kết quả
func multiply(a, b int) int {
return a * b
}
func main() {
result := multiply(5, 10)
fmt.Printf("multiplication: %d", result)
}
ผลลัพธ์:
multiplication: 50
ไวยากรณ์ฟังก์ชันใน Golang
func function_name(Parameter-list)(Return_type) {
// function body...
}
การประกาศฟังก์ชัน
ใน Go ฟังก์ชันจะถูกประกาศด้วยคีย์เวิร์ด func ตามด้วยชื่อ พารามิเตอร์ และประเภทผลตอบแทนที่เป็นทางเลือก
ไวยากรณ์
func function_name(Parameter-list)(Return_type) {
// function body...
}
ตัวอย่างฟังก์ชันคูณ
func multiply(a, b int) int {
return a * b
}
func: คำสำคัญในการประกาศฟังก์ชั่น
function_name: ชื่อของฟังก์ชัน เช่น คูณ.
รายการพารามิเตอร์: a, b int—พารามิเตอร์พร้อมกับประเภทของมัน
Return_type: int ระบุชนิดของผลตอบแทน
ฟังก์ชั่นการโทร
ในการใช้ฟังก์ชัน เพียงเรียกใช้ฟังก์ชันตามชื่อพร้อมอาร์กิวเมนต์ที่จำเป็น ที่นี่multiply(5, 10)เรียกใช้ฟังก์ชันโดยมี5และ10เป็นอาร์กิวเมนต์
ตัวอย่างเช่น
result := multiply(5, 10)
fmt.Printf("Result of multiplication: %d", result)
อาร์กิวเมนต์ของฟังก์ชัน
Go รองรับสองวิธีในการส่งผ่านพารามิเตอร์ไปยังฟังก์ชัน: เรียกตามค่าและเรียกตามการอ้างอิง โดยค่าเริ่มต้น Go จะใช้การเรียกตามค่า ซึ่งหมายถึงค่าจะถูกคัดลอกและการเปลี่ยนแปลงภายในฟังก์ชันจะไม่ส่งผลกระทบต่อตัวแปรของผู้เรียก
เรียกตามค่า
ในการเรียกตามค่า ค่าของอาร์กิวเมนต์จะถูกคัดลอกลงในพารามิเตอร์ของฟังก์ชัน ดังนั้นการเปลี่ยนแปลงในฟังก์ชันจะไม่ส่งผลกระทบต่อตัวแปรดั้งเดิม
ตัวอย่างเช่น:
package main
import "fmt"
func multiply(a, b int) int {
a = a * 2 // chỉnh sửa bên trong hàm này
return a * b
}
func main() {
x := 5
y := 10
fmt.Printf("Before: x = %d, y = %d\n", x, y)
result := multiply(x, y)
fmt.Printf("multiplication: %d\n", result)
fmt.Printf("After: x = %d, y = %d\n", x, y)
}
ผลลัพธ์:
Before: x = 5, y = 10
multiplication: 100
After: x = 5, y = 10
โทรสอบถามได้ที่
ในการเรียกโดยอ้างอิง จะมีการใช้ตัวชี้เพื่อให้การเปลี่ยนแปลงภายในฟังก์ชันสะท้อนอยู่ในตัวแปรของผู้เรียก
ตัวอย่างเช่น:
package main
import "fmt"
func multiply(a, b *int) int {
*a = *a * 2 // chỉnh sửa giá trị của a ở địa chỉ bộ nhớ của nó
return *a * *b
}
func main() {
x := 5
y := 10
fmt.Printf("Before: x = %d, y = %d\n", x, y)
result := multiply(&x, &y)
fmt.Printf("multiplication: %d\n", result)
fmt.Printf("After: x = %d, y = %d\n", x, y)
}
ผลลัพธ์
Before: x = 5, y = 10
multiplication: 100
After: x = 10, y = 10