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

ประกาศพารามิเตอร์การส่งคืนที่มีชื่อ
หากต้องการประกาศผลลัพธ์ที่มีชื่อหรือพารามิเตอร์การส่งคืน ให้ใช้ส่วนประเภทการส่งคืนของลายเซ็นฟังก์ชันเท่านั้น ด้านล่างนี้เป็นโครงสร้างทั่วไปในการประกาศฟังก์ชันใน Golang รูปแบบทางไวยากรณ์สำหรับการประกาศฟังก์ชันโดยไม่มีพารามิเตอร์การส่งคืนที่มีชื่อคือ:
func function_name(Parameter-list)(Return_type){
// function body.....
}
ที่นี่Return_Typeเป็นทางเลือก และประกอบด้วยประเภทของค่าที่ฟังก์ชันส่งคืน หากคุณใช้Return_Type ในฟังก์ชันของคุณ คุณต้องใช้ คำสั่งreturnในฟังก์ชันของคุณด้วย
รูปแบบทางไวยากรณ์สำหรับการประกาศฟังก์ชันที่มี อาร์กิวเมนต์ การคืนค่าที่มีชื่อ คือ:
func function_name(Parameter-list)(result_parameter1 data-_type, result_parameter2 data_type, ….){
// function body…..
return
}
ที่นี่ (result_parameter1 data-_type, result_parameter2 data_type, ….) เป็นรายการอาร์กิวเมนต์ที่ส่งคืนพร้อมตั้งชื่อพร้อมกับประเภทของอาร์กิวเมนต์เหล่านั้น คุณสามารถประกาศพารามิเตอร์ส่งกลับที่ตั้งชื่อได้จำนวนn รายการ
![พารามิเตอร์การส่งคืนที่มีชื่อใน Golang พารามิเตอร์การส่งคืนที่มีชื่อใน Golang]()
ตัวอย่าง: ตัวอย่าง: ในโปรแกรมด้านล่าง บรรทัดของโค้ดfunc calculator(a, b int) (mul int, div int)มีอาร์กิวเมนต์ return ที่มีชื่อ คำสั่งreturnที่ส่วนท้ายของฟังก์ชันไม่มีพารามิเตอร์ใดๆ คอมไพเลอร์ Go จะส่งคืนพารามิเตอร์โดยอัตโนมัติ
// Chương trình Go mình họa
// cách dùng đối số trả về được đặt tên
package main
import "fmt"
// Phương thức chính
func main() {
// tại đây gọi hàm này
// hàm trả về hai giá trị
m, d := calculator(105, 7)
fmt.Println("105 x 7 = ", m)
fmt.Println("105 / 7 = ", d)
}
// hàm có các đối số được đặt tên
func calculator(a, b int) (mul int, div int) {
// tại đây phép gán đơn giản sẽ
// khởi tạo giá trị cho nó
mul = a * b
div = a / b
// tại đây bạn sẽ có từ khóa return
// không có bất kỳ tham số kết quả nào
return
}
ผลลัพธ์:
105 x 7 = 735
105 / 7 = 15
หมายเหตุสำคัญ:
- หากชนิดของอาร์กิวเมนต์การส่งคืนทั้งหมดมีชื่อเหมือนกันหรือเหมือนกัน คุณสามารถระบุชนิดข้อมูลทั่วไปได้ เปรียบเทียบโค้ดด้านล่างนี้กับตัวอย่างที่คุณอ่านด้านบนเพื่อความเข้าใจที่ดีขึ้น
// hàm có đối số đã được đặt tên
func calculator(a, b int) (mul, div int) {
- ที่นี่ตัวแปรmulและdivทั้งคู่เป็นชนิดintดังนั้นคุณสามารถประกาศอาร์กิวเมนต์ที่มีชื่อพร้อมชนิดข้อมูลทั่วไปเป็นตัวแปรฟังก์ชัน (เช่น a และ b) ได้ด้วย
- การใช้พารามิเตอร์การส่งคืนที่มีชื่อจะช่วยเพิ่มการอ่านโค้ดให้ง่ายขึ้น เนื่องจากสามารถทราบเกี่ยวกับพารามิเตอร์การส่งคืนได้โดยการอ่านลายเซ็นของฟังก์ชันเท่านั้น
- หลังจากใช้พารามิเตอร์ return ที่มีชื่อแล้ว คำสั่ง return มักจะถูก เรียก ว่า NakedหรือBare return
- โดยค่าเริ่มต้น Golang จะกำหนดตัวแปรที่มีชื่อทั้งหมดด้วยค่าเป็นศูนย์ และฟังก์ชันต่างๆ จะสามารถใช้ตัวแปรเหล่านี้ได้ ในกรณีที่ฟังก์ชันไม่แก้ไขค่า ค่าศูนย์จะถูกส่งกลับมาโดยอัตโนมัติ
- ถ้าคุณใช้ตัวดำเนินการประกาศสั้น ( := ) เพื่อเริ่มต้นค่าพารามิเตอร์ส่งกลับที่มีชื่อ ระบบจะแสดงข้อผิดพลาดเนื่องจากมีการเริ่มค่าโดยคอมไพเลอร์ Go แล้ว ดังนั้นคุณสามารถใช้การกำหนดค่าแบบง่าย ( = ) เพื่อกำหนดค่าให้กับพารามิเตอร์การส่งคืนที่ตั้งชื่อไว้ได้
// hàm có đối số được đặt tên
func calculator(a, b int) (mul int, div int) {
// tại đây, nó sẽ báo lỗi
// dưới dạng tham số đã được xác định
// trong chữ ký hàm
mul := a * b
div := a / b
// tại đây bạn có từ khóa return
// không có bất kỳ tham số kết quả nào
return
}
- อาร์กิวเมนต์การส่งคืนที่มีชื่อหรือคำสั่งการส่งคืนขั้นต่ำนั้นดีสำหรับลายเซ็นฟังก์ชันสั้นเท่านั้น สำหรับฟังก์ชันที่ยาวกว่านั้น ให้ส่งคืนพารามิเตอร์ผลลัพธ์อย่างชัดเจน (อย่าใช้พารามิเตอร์ส่งคืนที่มีชื่อ) เพื่อรักษาความสามารถในการอ่านของโค้ด
- ในกรณีของอาร์กิวเมนต์การส่งคืนที่มีชื่อ จำเป็นต้องใช้คำสั่ง return แบบขั้นต่ำหรือแบบเรียบง่าย