GO

GO — خروجی تابع (Function Returns)

آخرین بروزرسانی: 1404/08/14

خروجی تابع (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)
}

مشاهده در ادیتور

گام های عملی

  1. نوعِ خروجی را بعد از پرانتز بنویس.
  2. مقدار را با return برگردان.
  3. در صورت نیاز، خروجی ها را نام گذاری کن.

نکته: نام گذاری خروجی کد را خواناتر می کند. اما زیاده روی نکن.

برای مرورِ خروجی تابع و پیوندهای مرتبط، به پارامترها/آرگومان ها برگرد. سپس مبحث بازگشت (Recursion) را ادامه بده.

جمع بندی سریع

  • نوعِ خروجی را مشخص کن.
  • با return مقدار را بده.
  • می توانی خروجی ها را نام بدهی.
  • چند خروجی همزمان مجاز است.
  • زیرخط، خروجی ناخواسته را حذف می کند.