>  기사  >  백엔드 개발  >  golang 함수에 대한 익명 함수

golang 함수에 대한 익명 함수

王林
王林원래의
2024-04-20 12:27:02682검색

Go 언어 익명 함수를 사용하면 함수 이름을 선언하지 않고도 일회성 함수나 더 큰 함수의 일부를 만들 수 있습니다. 구문은 func() { // function body }로, 매개변수를 받아들이고 결과를 반환합니다. 실제 예로는 슬라이스 정렬(sort.Slice 함수 및 익명 함수를 통해 특정 속성별로 정렬) 및 데이터 필터링(필터 함수 및 익명 함수를 통해 홀수 필터링)이 포함됩니다.

golang 함수에 대한 익명 함수

Go 언어의 익명 함수

익명 함수는 함수 이름을 선언할 필요가 없는 Go 언어의 함수입니다. 일회용 기능을 빠르게 생성하거나 더 큰 기능의 일부로 사용되는 경우가 많습니다.

Syntax

func() {
    // 函数体
}

익명 함수는 일반 함수와 마찬가지로 매개변수를 허용하고 결과를 반환할 수 있습니다.

func(x int) int {
    return x * x
}

실용 예제

슬라이스 정렬

sort.Slice함수에서 익명 함수를 사용하여 정렬을 기반으로 슬라이스를 정렬할 수 있습니다. 요소의 특정 속성별:

package main

import (
    "fmt"
    "sort"
)

type Person struct {
    Name string
    Age  int
}

func main() {
    people := []Person{
        {"John", 25},
        {"Mary", 30},
        {"Bob", 20},
    }

    // 根据 age 排序
    sort.Slice(people, func(i, j int) bool {
        return people[i].Age < people[j].Age
    })

    fmt.Println(people)
}

데이터 필터링

익명 함수를 사용하여 데이터를 필터링할 수도 있습니다.

package main

import "fmt"

func main() {
    nums := []int{1, 2, 3, 4, 5, 6, 7, 8, 9, 10}

    // 过滤奇数
    oddNums := filter(nums, func(x int) bool {
        return x % 2 != 0
    })

    fmt.Println(oddNums)
}

func filter(arr []int, f func(int) bool) []int {
    result := []int{}

    for _, v := range arr {
        if f(v) {
            result = append(result, v)
        }
    }

    return result
}

위 내용은 golang 함수에 대한 익명 함수의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.