برنامه نویسی

🧠 به برگه مرجع عملکرد بروید

  1. نحو تابع اصلی
func functionName(parameters) returnType {
    // function body
}
حالت تمام صفحه را وارد کنید

از حالت تمام صفحه خارج شوید

مثال:

func greet(name string) string {
    return "Hello, " + name
}
حالت تمام صفحه را وارد کنید

از حالت تمام صفحه خارج شوید

  1. فراخوانی یک تابع
message := greet("Alice")
fmt.Println(message) // Output: Hello, Alice
حالت تمام صفحه را وارد کنید

از حالت تمام صفحه خارج شوید

  1. پارامتر چندگانه
func add(a int, b int) int {
    return a + b
}
حالت تمام صفحه را وارد کنید

از حالت تمام صفحه خارج شوید

میانبر: همان نوع برای پارامترهای متعدد:

func add(a, b int) int {
    return a + b
}
حالت تمام صفحه را وارد کنید

از حالت تمام صفحه خارج شوید

  1. مقادیر بازگشت چندگانه
func divide(dividend, divisor float64) (float64, string) {
    if divisor == 0 {
        return 0, "Error: Division by zero"
    }
    return dividend / divisor, "Success"
}
حالت تمام صفحه را وارد کنید

از حالت تمام صفحه خارج شوید

result, status := divide(10, 2)
حالت تمام صفحه را وارد کنید

از حالت تمام صفحه خارج شوید

  1. مقادیر بازگشت به نام شما می توانید نام هایی را به مقادیر برگردانید – در توابع طولانی تر مفید است.
func getFullName() (firstName, lastName string) {
    firstName = "John"
    lastName = "Doe"
    return // implicit return
}
حالت تمام صفحه را وارد کنید

از حالت تمام صفحه خارج شوید

  1. توابع متغیر (هر تعداد آرگومان را بپذیرید)
func sum(nums ...int) int {
    total := 0
    for _, num := range nums {
        total += num
    }
    return total
}
حالت تمام صفحه را وارد کنید

از حالت تمام صفحه خارج شوید

sum := sum(1, 2, 3, 4, 5) // Output: 15
حالت تمام صفحه را وارد کنید

از حالت تمام صفحه خارج شوید

  1. توابع ناشناس توابع بدون نام ، برای کارهای کوتاه یا درون خطی استفاده می شود.
func() {
    fmt.Println("I am anonymous")
}()
حالت تمام صفحه را وارد کنید

از حالت تمام صفحه خارج شوید

یا به یک متغیر اختصاص دهید:

greet := func(name string) string {
    return "Hello, " + name
}
fmt.Println(greet("Bob"))
حالت تمام صفحه را وارد کنید

از حالت تمام صفحه خارج شوید

  1. بسته شدن (عملکرد با دسترسی به متغیرهای بیرونی)
func counter() func() int {
    count := 0
    return func() int {
        count++
        return count
    }
}

next := counter()
fmt.Println(next()) // 1
fmt.Println(next()) // 2
حالت تمام صفحه را وارد کنید

از حالت تمام صفحه خارج شوید

  1. تابع به عنوان پارامتر
func process(name string, f func(string) string) string {
    return f(name)
}

func shout(s string) string {
    return strings.ToUpper(s)
}

result := process("hello", shout)
حالت تمام صفحه را وارد کنید

از حالت تمام صفحه خارج شوید

  1. دامنه در GO
  • دامنه محلی: متغیرهای اعلام شده در داخل یک تابع فقط در دسترس هستند.
  • دامنه جهانی: متغیرهای اعلام شده در خارج از کلیه کارکردها در همه جای همان بسته قابل دسترسی هستند.
  • دامنه بلوک: متغیرهای داخل {} در آن بلوک قرار دارند.
var globalVar = "I’m global"

func example() {
    localVar := "I’m local"
    fmt.Println(globalVar, localVar)
}
حالت تمام صفحه را وارد کنید

از حالت تمام صفحه خارج شوید

  1. بازگشت زود هنگام (بهترین تمرین) با استفاده از بازده های اولیه از لانه سازی عمیق خودداری کنید:
func login(user string) string {
    if user == "" {
        return "No user provided"
    }
    return "Welcome " + user
}
حالت تمام صفحه را وارد کنید

از حالت تمام صفحه خارج شوید

  1. عملکرد بازگشتی تابعی که خود را صدا می کند:
func factorial(n int) int {
    if n == 0 {
        return 1
    }
    return n * factorial(n-1)
}
حالت تمام صفحه را وارد کنید

از حالت تمام صفحه خارج شوید

خلاصه

نوشته های مشابه

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

دکمه بازگشت به بالا