递归火山软件开发平台

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[视窗] 常量值为什么可以被修改呢?

[复制链接]

411

主题

2517

帖子

8298

积分

核心用户

Rank: 9Rank: 9Rank: 9

积分
8298
跳转到指定楼层
楼主
发表于 2021-4-8 12:58:34 | 只看该作者 |只看大图 回帖奖励 |正序浏览 |阅读模式
理论上常量值就是固定的。但是当常量作为方法参数被修改后,再输出常量就是真的改了,就跟普通变量一样。


回复

使用道具 举报

411

主题

2517

帖子

8298

积分

核心用户

Rank: 9Rank: 9Rank: 9

积分
8298
5#
 楼主| 发表于 2021-4-8 21:30:56 | 只看该作者

很简单的代码啊,就是常量值被传递给方法参数,方法里对该参数进行了赋值,而这样却会影响到常量值
回复

使用道具 举报

91

主题

490

帖子

2059

积分

金牌会员

免费版体验专员

Rank: 6Rank: 6

积分
2059
地板
发表于 2021-4-8 20:08:53 | 只看该作者
看不懂。。
非主流编程软件/非官方指定的/非正式版体验专员
回复

使用道具 举报

411

主题

2517

帖子

8298

积分

核心用户

Rank: 9Rank: 9Rank: 9

积分
8298
板凳
 楼主| 发表于 2021-4-8 15:59:16 | 只看该作者
创世魂 发表于 2021-4-8 15:27
这种操作是第一次见。。。。没深入底层研究过。。但是猜测,注意是猜测:经过方法操作后,此时你操作的已经 ...

我估计是常量没有被设置只读属性。其实也可以在常量被传递给方法后,内部使用一个不可见的临时变量接管该常量值,再传递给方法,这样常量就不会被修改。
回复

使用道具 举报

444

主题

1万

帖子

4万

积分

超级版主

Rank: 8Rank: 8

积分
40551
沙发
发表于 2021-4-8 15:27:33 | 只看该作者
这种操作是第一次见。。。。没深入底层研究过。。但是猜测,注意是猜测:经过方法操作后,此时你操作的已经不是原本的那个常量了。。。。。

太过深奥。不太理解,超出知识盲区了。
安卓无障碍实战课:点击查看
交流群:641526939
回复

使用道具 举报

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

本版积分规则

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

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

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

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