golang 익명 함수 및 클로저에 대한 코드 예제 및 모범 사례 분석

王林
풀어 주다: 2024-05-05 08:18:02
원래의
370명이 탐색했습니다.

익명 함수: 익명 함수는 이름이 없는 함수이며 일회성 함수나 콜백을 만드는 데 사용됩니다. 클로저: 클로저에는 외부 변수에 액세스하고 수정할 수 있는 익명 함수와 외부 변수 참조가 포함되어 있습니다.

golang 익명 함수 및 클로저에 대한 코드 예제 및 모범 사례 분석

Go 언어의 익명 함수 및 클로저

익명 함수란 무엇인가요?

익명 함수는 이름이 없는 함수로, 일반적으로 일회용 함수나 콜백을 만드는 데 사용됩니다.

익명 함수 구문 선언:

func(参数列表)(返回值列表) { 函数体 }
로그인 후 복사

예:

숫자 목록 제곱하기:

numbers := []int{1, 2, 3, 4, 5}
result := map(func(n int) int { return n * n }, numbers)
로그인 후 복사

클로저란 무엇인가요?

클로저는 익명 함수와 외부 변수 참조를 포함하는 함수 값입니다. 이는 클로저가 외부 변수에 액세스하고 수정할 수 있음을 의미합니다.

클로저 구문 만들기:

func(参数列表)(返回值列表) {
    // 内部定义的变量
    变量名 := 值
    return func(闭包参数列表)(闭包返回值列表) {
        // 可以访问和修改内部变量
    }
}
로그인 후 복사

예:

페이지당 지정된 횟수만큼 반복되는 단어를 반환하는 함수 만들기:

package main

import "fmt"

func makeRepeated(s string, n int) func() string {
    i := 0
    return func() string {
        i++
        return fmt.Sprintf("%s%d", s, i)
    }
}

func main() {
    repeat := makeRepeated("a", 5)
    fmt.Println(repeat())
    fmt.Println(repeat())
}
로그인 후 복사

출력:

a1
a2
로그인 후 복사

위 내용은 golang 익명 함수 및 클로저에 대한 코드 예제 및 모범 사례 분석의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

관련 라벨:
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
최신 이슈
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿
회사 소개 부인 성명 Sitemap
PHP 중국어 웹사이트:공공복지 온라인 PHP 교육,PHP 학습자의 빠른 성장을 도와주세요!