递归火山软件开发平台

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
热搜: 火山 源码 类库
12
返回列表 发新帖
楼主: hcwanz
打印 上一主题 下一主题

[视窗] 基于go的协程, 想到的视窗对匿名函数的支持

[复制链接]

63

主题

881

帖子

3882

积分

核心用户

Rank: 9Rank: 9Rank: 9

积分
3882
11#
 楼主| 发表于 4 天前 | 只看该作者
本帖最后由 hcwanz 于 2024-6-25 20:55 编辑
Xelloss0618 发表于 2024-6-25 20:51
明显不是参数,而是通过 [&] 俘获了匿名函数外部的变量

那为啥我这输出的是未修改的?
回复

使用道具 举报

63

主题

881

帖子

3882

积分

核心用户

Rank: 9Rank: 9Rank: 9

积分
3882
12#
 楼主| 发表于 4 天前 | 只看该作者
本帖最后由 hcwanz 于 2024-6-25 21:01 编辑
Xelloss0618 发表于 2024-6-25 20:51
明显不是参数,而是通过 [&] 俘获了匿名函数外部的变量

你这光写的捕获吧, 我这是传了参数的
回复

使用道具 举报

26

主题

1582

帖子

5918

积分

核心用户

Rank: 9Rank: 9Rank: 9

积分
5918
13#
发表于 4 天前 | 只看该作者
hcwanz 发表于 2024-6-25 20:56
你这光写的捕获吧, 我这是传了参数的

你改成 嵌入 (a, "", c, d) 就知道了
即空俘获 [] (int& c, int & d) {}
回复

使用道具 举报

63

主题

881

帖子

3882

积分

核心用户

Rank: 9Rank: 9Rank: 9

积分
3882
14#
 楼主| 发表于 4 天前 | 只看该作者
Xelloss0618 发表于 2024-6-25 21:13
你改成 嵌入 (a, "", c, d) 就知道了
即空俘获 [] (int& c, int & d) {}

好像没啥问题吧

回复

使用道具 举报

63

主题

881

帖子

3882

积分

核心用户

Rank: 9Rank: 9Rank: 9

积分
3882
15#
 楼主| 发表于 4 天前 | 只看该作者
本帖最后由 hcwanz 于 2024-6-25 21:33 编辑
Xelloss0618 发表于 2024-6-25 21:13
你改成 嵌入 (a, "", c, d) 就知道了
即空俘获 [] (int& c, int & d) {}

匿名函数应该会优先使用内部的变量, 当找不到对应的变量名的时候, 才会去捕获
这里我把 '参数d' 打错成 '参数b' 了,
然后 '函数a'  修改的是 '参数c' 和捕获的 '变量d' ;

int c=1,d=2;
auto a=[&](auto c,auto b){
DebugTrace (FALSE, 0, 0, L"nnn",c,d,2);
c=19;d=49;
DebugTrace (FALSE, 0, 0, L"nnn",c,d,3);
};

DebugTrace (FALSE, 0, 0, L"nnn",c,d,1);
a(8,3);
DebugTrace (FALSE, 0, 0, L"nnn",c,d,4);





回复

使用道具 举报

26

主题

1582

帖子

5918

积分

核心用户

Rank: 9Rank: 9Rank: 9

积分
5918
16#
发表于 4 天前 | 只看该作者
好吧,搞明白了,你这是将匿名函数的参数名,跟外部变量设置成一样。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|小黑屋|递归火山软件开发平台 ( 鄂ICP备18029190号 )

GMT+8, 2024-6-29 03:33 , Processed in 0.093114 second(s), 19 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表