相关疑难解决方法(0)

为什么字符串在Java和.NET中不可变?

为什么他们决定在Java和.NET(以及其他一些语言)中使字符串不可变?他们为什么不让它变得可变?

.net java string mutable

189
推荐指数
9
解决办法
4万
查看次数

Ruby中的字符串是否可变?

请考虑以下代码:

$ irb
> s = "asd"
> s.object_id   # prints 2171223360
> s[0] = ?z     # s is now "zsd"
> s.object_id   # prints 2171223360 (same as before)
> s += "hello"  # s is now "zsdhello"
> s.object_id   # prints 2171224560 (now it's different)
Run Code Online (Sandbox Code Playgroud)

似乎可以在不创建新字符串的情况下更改单个字符.但是,附加到字符串显然会创建一个新字符串.

Ruby中的字符串是否可变?

ruby string mutable immutability

34
推荐指数
4
解决办法
1万
查看次数

为什么没有String#shift()?

我通过工作我的方式项目欧拉,跑进一个稍微令人惊讶的疏漏:没有String#shift,unshift,push,或pop.我假设String被认为是一个像"数组"一样的"顺序"对象,因为它们具有索引和迭代的能力,并且这包括轻松更改对象的开头和结尾的能力.

我知道有很多方法可以创造同样的效果,但有一个特殊的原因,串并不会有这些方法?

ruby

15
推荐指数
3
解决办法
8175
查看次数

不可变字符串的优缺点

有些语言(C#或Java)具有不可变字符串,而其他语言(例如Ruby)具有可变字符串.这些设计选择背后的原因是什么?

language-agnostic string language-design

6
推荐指数
1
解决办法
827
查看次数