برنامه نویسی

درک عملکردهای مرتبه اول در GO

عملکرد مرتبه اول چیست؟

بوها تابع مرتبه اول تابعی است که عملکرد دیگری را به عنوان یک آرگومان نمی گیرد و عملکردی را بر نمی گرداندبشر این کار فقط در انواع داده های استاندارد مانند اعداد صحیح ، رشته ها ، ساختارها ، آرایه ها و غیره کار می کند.

در مقابل ، توابع مرتبه بالاتر یا یک عملکرد را به عنوان یک آرگومان بگیرید یا یک تابع را برگردانید.


خصوصیات توابع مرتبه اول

  1. انواع داده های اساسی را می گیرد و برمی گرداند (int ، رشته ، ساختار ، برش و غیره).
  2. بدون پارامترهای عملکردی (عملکرد دیگری را به عنوان یک استدلال قبول نمی کند).
  3. بدون مقادیر بازگشت عملکرد (عملکرد دیگری را برنمی گرداند).
  4. درک و استفاده راحت تر است در مقایسه با توابع مرتبه بالاتر.

نمونه هایی از عملکردهای مرتبه اول در GO

1⃣ عملکرد ساده با انواع داده های ابتدایی

این عملکرد دو عدد صحیح را به عنوان ورودی می گیرد و مبلغ آنها را برمی گرداند.

package main

import "fmt"

func add(a int, b int) int {
    return a + b
}

func main() {
    result := add(5, 3)
    fmt.Println("Sum:", result) // Output: Sum: 8
}
حالت تمام صفحه را وارد کنید

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

چرا مرتبه اول؟

  • add فقط با مقادیر عدد صحیح عمل می کند.
  • نه عملکرد دیگری را می پذیرد و نه باز می گرداند.

2⃣ عملکرد مرتبه اول با استفاده از یک ساختار

تابعی که پردازش می کند ساختار (نوع داده های سفارشی).

package main

import "fmt"

type User struct {
    Name  string
    Age   int
}

// Function that operates on a struct and returns a string
func greet(user User) string {
    return "Hello, " + user.Name + "!"
}

func main() {
    u := User{Name: "Alice", Age: 25}
    message := greet(u)
    fmt.Println(message) // Output: Hello, Alice!
}
حالت تمام صفحه را وارد کنید

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

چرا مرتبه اول؟

  • greet قبول می کند User ساختار و بازگشت stringبشر
  • این توابع را قبول نمی کند یا بازگشت.

3⃣ عملکرد مرتبه اول با برش ها

تابعی که پردازش می کند آرایه یا برشبشر

package main

import "fmt"

func sumArray(numbers []int) int {
    sum := 0
    for _, num := range numbers {
        sum += num
    }
    return sum
}

func main() {
    nums := []int{1, 2, 3, 4, 5}
    fmt.Println("Total Sum:", sumArray(nums)) // Output: 15
}
حالت تمام صفحه را وارد کنید

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

چرا مرتبه اول؟

  • sumArray یک قطعه عدد صحیح را پردازش می کند.
  • هیچ پارامتری عملکرد یا مقادیر برگشتی درگیر نیست.

عملکردهای مرتبه اول با عملکردهای مرتبه بالاتر تفاوت دارند؟

نشان تابع مرتبه اول عملکرد مرتبه بالاتر
عملکرد را به عنوان پارامتر می پذیرد؟ ❌ نه ✅ بله
عملکرد دیگری را برمی گرداند؟ ❌ نه ✅ بله
نمونه sumArray([]int) operate(4, 2, func(x, y int) int { return x * y })

چه موقع از توابع مرتبه اول استفاده کنیم؟

✅ هنگام کار با محاسبات ساده که نیازی به منابع مربوط به عملکرد ندارند.

✅ چه موقع مدولار بودن و خوانایی مهمتر از انعطاف پذیری هستند.

✅ هنگام انجام عملیات اساسی مانند محاسبات ، پردازش ساختار و دستکاری داده ها.

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

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

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

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