Maison >développement back-end >C++ >Comment une expression lambda capture-t-elle les variables externes ?
Une expression lambda capture une variable externe en créant une référence à la variable dans la portée externe. Les étapes spécifiques incluent : Lorsqu'une expression lambda utilise une variable externe, elle capture la variable. Les expressions Lambda ne peuvent capturer que des variables locales dans des fonctions externes, pas des variables globales. Si la variable externe est réaffectée, la référence capturée dans l'expression lambda est également mise à jour.
Comment les expressions lambda capturent les variables externes
Les expressions lambda sont des fonctions anonymes qui peuvent accéder aux variables dans la portée englobante. Lorsqu'une expression lambda capture une variable externe, elle crée une référence à cette variable.
Syntaxe
lambda 参数列表: 表达式
Capturer des variables externes
Si une expression lambda utilise une variable déclarée dans une portée externe, elle sera capturée.
# 定义外部函数 def outer_function(): outer_variable = 10 # 定义 lambda 表达式,捕获 outer_variable my_lambda = lambda: outer_variable # 调用 lambda 表达式,获取外部变量 result = my_lambda() print(result) # 输出: 10
Notes
Les expressions lambda ne peuvent capturer que des variables locales dans des fonctions externes, pas des variables globales. De plus, si la variable externe est réaffectée, la référence capturée dans l'expression lambda est également mise à jour.
Exemple pratique
# 使用 lambda 表达式对列表中的数字进行排序 numbers = [4, 2, 8, 1, 6] # 根据数字的平方对列表进行排序 sorted_numbers = sorted(numbers, key=lambda x: x**2) # 打印排序后的列表 print(sorted_numbers) # 输出: [1, 4, 2, 6, 8]
Dans cet exemple, l'expression lambda capture le carré de x
变量,并计算 x
dans la portée externe comme base de tri.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!