递归火山软件开发平台

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
热搜: 火山 源码 类库
查看: 8668|回复: 8
打印 上一主题 下一主题

[视窗] 文本型参数如果是空白文本值就无法回传到调用方?

[复制链接]

411

主题

2517

帖子

8298

积分

核心用户

Rank: 9Rank: 9Rank: 9

积分
8298
跳转到指定楼层
楼主
发表于 2021-4-6 17:03:27 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 shuimiao 于 2021-4-6 20:36 编辑

这算不算bug呢?如图所示,在调试输出中文本型变量作为方法参数回传数据有问题,变量有内容时就能正常回传并调试输出,没有内容就获取不到回传数据,而第二行重新调试输出该变量却又有数据



。。。。

文本参数不能为空文本才能回传参数.jpg (14.51 KB, 下载次数: 59)

文本参数不能为空文本才能回传参数.jpg
回复

使用道具 举报

444

主题

1万

帖子

4万

积分

超级版主

Rank: 8Rank: 8

积分
40551
沙发
发表于 2021-4-6 17:10:24 | 只看该作者
空文本。肯定也会传递过去的啊。。。只不过。火山调试输出不会输出空文本。。算是细节上的一点不足。。
安卓无障碍实战课:点击查看
交流群:641526939
回复

使用道具 举报

411

主题

2517

帖子

8298

积分

核心用户

Rank: 9Rank: 9Rank: 9

积分
8298
板凳
 楼主| 发表于 2021-4-6 20:16:43 | 只看该作者
创世魂 发表于 2021-4-6 17:10
空文本。肯定也会传递过去的啊。。。只不过。火山调试输出不会输出空文本。。算是细节上的一点不足。。 ...

不是说的调试输出不会输出空文本,而是文本变量如果是空文本,作为参数放入方法里面调用回传,是无法得到回传内容到这个文本变量里的。而是文本变量必须有内容,才能得到方法回传。你可以试试
回复

使用道具 举报

411

主题

2517

帖子

8298

积分

核心用户

Rank: 9Rank: 9Rank: 9

积分
8298
地板
 楼主| 发表于 2021-4-6 20:24:58 | 只看该作者
创世魂 发表于 2021-4-6 17:10
空文本。肯定也会传递过去的啊。。。只不过。火山调试输出不会输出空文本。。算是细节上的一点不足。。 ...

看这个例子,第一次是得不到回传的


回复

使用道具 举报

411

主题

2517

帖子

8298

积分

核心用户

Rank: 9Rank: 9Rank: 9

积分
8298
5#
 楼主| 发表于 2021-4-6 20:37:51 | 只看该作者
创世魂 发表于 2021-4-6 17:10
空文本。肯定也会传递过去的啊。。。只不过。火山调试输出不会输出空文本。。算是细节上的一点不足。。 ...

这个例子更准确些。如图所示,在调试输出中文本型变量作为方法参数回传数据有问题,变量有内容时就能正常回传并调试输出,没有内容就获取不到回传数据,而第二行重新调试输出该变量却又有数据


回复

使用道具 举报

8

主题

74

帖子

1592

积分

核心用户

Rank: 9Rank: 9Rank: 9

积分
1592
6#
发表于 2021-4-6 20:52:17 | 只看该作者
我也有这个疑问,像组数 对象 这些是引用类型,肯定都会变 ,基本数据类型除文本型 别的都不会变,就这个文本,不知道 是基本类型,还是引用类型.或许是bug
回复

使用道具 举报

62

主题

1674

帖子

8613

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
8613
7#
发表于 2021-4-6 21:20:39 | 只看该作者
你这样写:

调试输出 ("b", b, 方法回传 (b))

C++参数处理顺序是从后向前的.
回复

使用道具 举报

411

主题

2517

帖子

8298

积分

核心用户

Rank: 9Rank: 9Rank: 9

积分
8298
8#
 楼主| 发表于 2021-4-6 23:59:19 | 只看该作者
飞扬工作室 发表于 2021-4-6 21:20
你这样写:

调试输出 ("b", b, 方法回传 (b))

吴总,如果是从后往前运算,也就是逆向运算,那我的写法里面,调试输出的最后一个变量a就是最先输出的,就应该是原来的内容,也就是这时候还没有从方法回传内容给a。可是实际上,当a在调用方法回传之前本身有任意内容,先输出的a就已经有了方法的回传内容,分明是正向运算啊;而当a在调用方法回传之前本身空白内容,先输出的a就一样是空白内容(看起来没有获得回传内容,或者没有执行回传方法),这样就符合逆向运算。

吴总,建议你照着我的截图里面的代码测试一下,我估计是调试输出()的bug
回复

使用道具 举报

62

主题

1674

帖子

8613

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
8613
9#
发表于 2021-4-7 17:40:30 | 只看该作者
参数处理是逆向的,但是参数压栈是正向的.

回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-11-25 21:06 , Processed in 0.091740 second(s), 20 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

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