>  기사  >  백엔드 개발  >  람다 표현식은 외부 변수를 어떻게 캡처합니까?

람다 표현식은 외부 변수를 어떻게 캡처합니까?

WBOY
WBOY원래의
2024-04-25 17:24:01466검색

람다 표현식은 외부 범위에서 변수에 대한 참조를 생성하여 외부 변수를 캡처합니다. 특정 단계는 다음과 같습니다. 람다 표현식이 외부 변수를 사용하는 경우 변수를 캡처합니다. 람다 표현식은 전역 변수가 아닌 외부 함수의 로컬 변수만 캡처할 수 있습니다. 외부 변수가 다시 할당되면 람다 식에 캡처된 참조도 업데이트됩니다.

lambda 表达式如何捕获外部变量?

람다 표현식이 외부 변수를 캡처하는 방법

람다 표현식은 바깥쪽 범위의 변수에 액세스할 수 있는 익명 함수입니다. 람다 식이 외부 변수를 캡처하면 해당 변수에 대한 참조가 생성됩니다.

Syntax

lambda 参数列表: 表达式

외부 변수 캡처

람다 표현식이 외부 범위에 선언된 변수를 사용하는 경우 캡처됩니다.

# 定义外部函数
def outer_function():
    outer_variable = 10

    # 定义 lambda 表达式,捕获 outer_variable
    my_lambda = lambda: outer_variable

# 调用 lambda 表达式,获取外部变量
result = my_lambda()
print(result)  # 输出: 10

Notes

lambda 표현식은 전역 변수가 아닌 외부 함수의 지역 변수만 캡처할 수 있습니다. 또한 외부 변수가 다시 할당되면 람다 식에 캡처된 참조도 업데이트됩니다.

실용 예

# 使用 lambda 表达式对列表中的数字进行排序
numbers = [4, 2, 8, 1, 6]

# 根据数字的平方对列表进行排序
sorted_numbers = sorted(numbers, key=lambda x: x**2)

# 打印排序后的列表
print(sorted_numbers)  # 输出: [1, 4, 2, 6, 8]

이 예에서 람다 표현식은 정렬 기준으로 외부 범위에서 x 变量,并计算 x의 제곱을 캡처합니다.

위 내용은 람다 표현식은 외부 변수를 어떻게 캡처합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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