1
5
这两个类的原因与您有时使用std::string,有时使用const std::string的原因相同。但是,与C++不同,Objto-C没有const方法,因此它们将const -非const方法分离成两个不同的类。这在许多核心类中也可以看到,例如NSArray(NSMutableArray)、NSDictionary(NSMutableDictionary)等。 |
2
6
很有可能,甚至很可能,只有在字符串不可变时才允许进行优化。 事实上正在运行
在调试器中,会立即显示它们都是指向同一字符串的指针。事实上
两者都指向相同的内存地址。同时
指向不同的字符串。
在我自己的工作中,我倾向于只使用需要直接编辑内容的可变变体。这与C/C++风格的一切都是可变的,除非你需要一个常量,否则一切都是常量,除非你需要可变。 |
3
0
我想说的一般规则是“不要使用旨在提供您不需要的功能的类”。如果需要直接更改字符串的内容,请使用
|
4
0
我认为不可变字符串的使用是对编译器的一个提示,编译器可以通过知道它不会改变来执行优化。 |
Martin sku · 在目标C中打印时间 2 年前 |
Vinod prajapat · 如何更新数组的最后一个元素? 2 年前 |
subin272 · 修复iOS中的多个按钮单击事件? 6 年前 |
James Chan · 如何使用锁定/解锁? 6 年前 |
Josh F. · NSBundle mainBundle返回零 6 年前 |