简短回答:
不可变对象本身不能被修改;如果你看到“修改”了,那通常是创建了一个新的对象,而不是改动了原来的对象。
不可变对象(Immutable Object)指的是:对象一旦创建,其内部状态(字段、数据)就不能再被改变。
常见例子(以 Python 为例):
intfloatstrtuplefrozensets = "abc"
s = s + "d"
print(s) # "abcd"
实际上发生了什么?
"abc" 是不可变对象s + "d" 创建了一个新的字符串对象 "abcd"s 指向了新的对象✅ 原来的 "abc" 并没有被修改
t = (1, 2, [3, 4])
t[2].append(5)
print(t) # (1, 2, [3, 4, 5])
看起来元组变了,但:
✅ 这符合“不可变”的定义
| 类型 | 是否可变 | 示例 |
|---|---|---|
| 不可变 | ❌ 不能 | int, str, tuple |
| 可变 | ✅ 能 | list, dict, set |
不可变对象不能修改,只能被替换。
如果你愿意,我也可以用 Java / C++ / JavaScript 的角度再解释一遍,或者结合你正在学的语言来讲。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。