Trả về hàm Go
Giá trị trả về
Nếu muốn hàm trả về một giá trị, bạn cần xác định kiểu dữ liệu của giá trị trả về (chẳng hạn như int
, string
, v.v.) đồng thời sử dụng từ khóa return
bên trong hàm:
Cú pháp
func FunctionName ( param1 type , param2
type ) type {
// code to be executed
return output
}
Ví dụ trả về hàm
Ví dụ
Ở đây, myFunction()
nhận hai số nguyên ( x
và y
) và trả về phép cộng của chúng ( x + y
) dưới dạng số nguyên ( int
):
package main
import ("fmt")
func myFunction(x int, y int) int {
return x + y
}
func main() {
fmt.Println(myFunction(1, 2))
}
Kết quả:
3
Giá trị trả về được đặt tên
Trong Go, bạn có thể đặt tên cho giá trị trả về của hàm.
Ví dụ
Ở đây, chúng ta đặt tên giá trị trả về là result
(loại int
) và trả về giá trị bằng trần (có nghĩa là chúng ta sử dụng câu lệnh return
mà không chỉ định tên biến):
package main
import ("fmt")
func myFunction(x int, y int) (result int) {
result = x + y
return
}
func main() {
fmt.Println(myFunction(1, 2))
}
Kết quả:
3
Ví dụ trên cũng có thể được viết như thế này. Ở đây, câu lệnh return chỉ định tên biến:
Ví dụ
package main
import ("fmt")
func myFunction(x int, y int) (result int) {
result = x + y
return result
}
func main() {
fmt.Println(myFunction(1, 2))
}
Lưu trữ giá trị trả về trong một biến
Bạn cũng có thể lưu trữ giá trị trả về trong một biến, như sau:
Ví dụ
Ở đây, chúng ta lưu trữ giá trị trả về trong một biến có tên là total
:
package main
import ("fmt")
func myFunction(x int, y int) (result int) {
result = x + y
return
}
func main() {
total :=
myFunction(1, 2)
fmt.Println(total)
}
Hãy tự mình thử »Nhiều giá trị trả về
Hàm Go cũng có thể trả về nhiều giá trị.
Ví dụ
Ở đây, myFunction()
trả về một số nguyên ( result
) và một chuỗi ( txt1
):
package main
import ("fmt")
func myFunction(x int, y string) (result int, txt1 string) {
result = x + x
txt1 = y + " World!"
return
}
func main() {
fmt.Println(myFunction(5, "Hello"))
}
Kết quả:
10 Hello World!
Ví dụ
Ở đây, chúng tôi lưu trữ hai giá trị trả về thành hai biến ( a
và b
):
package main
import ("fmt")
func myFunction(x int, y string) (result int, txt1 string) {
result = x + x
txt1 = y + " World!"
return
}
func main() {
a, b := myFunction(5, "Hello")
fmt.Println(a, b)
}
Kết quả:
10 Hello World!
Nếu chúng ta (vì lý do nào đó) không muốn sử dụng một số giá trị được trả về, chúng ta có thể thêm dấu gạch dưới ( _
) để bỏ qua giá trị này.
Ví dụ
Ở đây, chúng tôi muốn bỏ qua giá trị trả về đầu tiên ( result
- được lưu trong biến a
):
package main
import ("fmt")
func myFunction(x int, y string) (result int, txt1 string) {
result = x + x
txt1 = y + " World!"
return
}
func main() {
_, b := myFunction(5, "Hello")
fmt.Println(b)
}
Kết quả:
Hello World!
Ví dụ
Ở đây, chúng tôi muốn bỏ qua giá trị trả về thứ hai ( txt1
- được lưu trong biến b
):
package main
import ("fmt")
func myFunction(x int, y string) (result int, txt1 string) {
result = x + x
txt1 = y + " World!"
return
}
func main() {
a, _ := myFunction(5, "Hello")
fmt.Println(a)
}
Kết quả:
10