ホームページ  >  記事  >  バックエンド開発  >  ラムダ式はどのようにして外部変数をキャプチャするのでしょうか?

ラムダ式はどのようにして外部変数をキャプチャするのでしょうか?

WBOY
WBOYオリジナル
2024-04-25 17:24:01533ブラウズ

ラムダ式は、外部スコープ内で変数への参照を作成することによって外部変数をキャプチャします。具体的な手順は次のとおりです。 ラムダ式は、外部変数を使用するときにそれをキャプチャします。ラムダ式は外部関数のローカル変数のみをキャプチャでき、グローバル変数はキャプチャできません。外部変数が再割り当てされると、ラムダ式でキャプチャされた参照も更新されます。

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

#ラムダ式が外部変数を取得する方法

ラムダ式は匿名関数であり、外側のスコープ (囲みスコープ) 変数にアクセスできます。で 。ラムダ式が外部変数をキャプチャすると、その変数への参照が作成されます。

#構文

lambda 参数列表: 表达式

外部変数のキャプチャ

ラムダ式が外部スコープで宣言された変数を使用する場合、この変数は捕らえられるだろう。

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

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

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

Notes

ラムダ式は、外部関数のローカル変数のみをキャプチャでき、グローバル変数はキャプチャできません。さらに、外部変数が再割り当てされると、ラムダ式でキャプチャされた参照も更新されます。

実際的なケース

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

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

# 打印排序后的列表
print(sorted_numbers)  # 输出: [1, 4, 2, 6, 8]
この例では、ラムダ式は外側のスコープ内の

xx

変数をキャプチャし、x# の 2 乗を計算します。 ## は並べ替えの基準として使用されます。

以上がラムダ式はどのようにして外部変数をキャプチャするのでしょうか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。