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

عملکرد مرتبه اول چیست؟
بوها تابع مرتبه اول تابعی است که عملکرد دیگری را به عنوان یک آرگومان نمی گیرد و عملکردی را بر نمی گرداندبشر این کار فقط در انواع داده های استاندارد مانند اعداد صحیح ، رشته ها ، ساختارها ، آرایه ها و غیره کار می کند.
در مقابل ، توابع مرتبه بالاتر یا یک عملکرد را به عنوان یک آرگومان بگیرید یا یک تابع را برگردانید.
خصوصیات توابع مرتبه اول
- انواع داده های اساسی را می گیرد و برمی گرداند (int ، رشته ، ساختار ، برش و غیره).
- بدون پارامترهای عملکردی (عملکرد دیگری را به عنوان یک استدلال قبول نمی کند).
- بدون مقادیر بازگشت عملکرد (عملکرد دیگری را برنمی گرداند).
- درک و استفاده راحت تر است در مقایسه با توابع مرتبه بالاتر.
نمونه هایی از عملکردهای مرتبه اول در 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 }) |
چه موقع از توابع مرتبه اول استفاده کنیم؟
✅ هنگام کار با محاسبات ساده که نیازی به منابع مربوط به عملکرد ندارند.
✅ چه موقع مدولار بودن و خوانایی مهمتر از انعطاف پذیری هستند.
✅ هنگام انجام عملیات اساسی مانند محاسبات ، پردازش ساختار و دستکاری داده ها.