خروجی تابع (Function Returns)
خروجی تابع یعنی مقداری که تابع پس می دهد. برای تعیین نوع خروجی، بعد از پرانتزها نوع را می نویسیم و با کلمه return مقدار را برمی گردانیم. مثل برگه ی نمره که معلم در پایان می دهد.
برگشت مقدار: سینتکس پایه
نوعِ خروجی بعد از پرانتزها می آید و با return برمی گردد.
func FunctionName(param1 type, param2 type) type {
// کد اجرا
return output
}
مثال ساده خروجی تابع
اینجا جمع دو عدد برگردانده می شود و چاپ می شود.
package main
import (
"fmt"
)
func myFunction(x int, y int) int {
return x + y
}
func main() {
fmt.Println(myFunction(1, 2))
}
خروجی نام دار (Named Return)
می توانی نام خروجی را مشخص کنی و بازگشتِ بدون مقدار بنویسی.
package main
import (
"fmt"
)
func myFunction(x int, y int) (result int) {
result = x + y
return
}
func main() {
fmt.Println(myFunction(1, 2))
}
نکته: می توانی نام خروجی را در return هم ذکر کنی.
package main
import (
"fmt"
)
func myFunction(x int, y int) (result int) {
result = x + y
return result
}
func main() {
fmt.Println(myFunction(1, 2))
}
ذخیره خروجی در متغیر
خروجی را اول بگیر، سپس هرجا لازم بود استفاده کن.
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)
}
چند خروجی همزمان
تابع در Go می تواند چند مقدار برگرداند. این خیلی کاربردی است.
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"))
}
همچنین می توانی هر خروجی را در متغیر جدا ذخیره کنی.
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)
}
نادیده گرفتن برخی خروجی ها
اگر مقداری را نمی خواهی، از زیرخط _ استفاده کن.
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)
}
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)
}
گام های عملی
- نوعِ خروجی را بعد از پرانتز بنویس.
- مقدار را با
returnبرگردان. - در صورت نیاز، خروجی ها را نام گذاری کن.
نکته: نام گذاری خروجی کد را خواناتر می کند. اما زیاده روی نکن.
برای مرورِ خروجی تابع و پیوندهای مرتبط، به پارامترها/آرگومان ها برگرد. سپس مبحث بازگشت (Recursion) را ادامه بده.
جمع بندی سریع
- نوعِ خروجی را مشخص کن.
- با
returnمقدار را بده. - می توانی خروجی ها را نام بدهی.
- چند خروجی همزمان مجاز است.
- زیرخط، خروجی ناخواسته را حذف می کند.