我正在阅读this个问题/答案,这基本上表明了Java和字符串中的一个有趣的行为,我脑子里出现了两个问题:
String
的行为是否相同?我的意思是,如果我有两个变量存储相同的文字"someString"
,在内部,它们会引用一个"someString"
对象吗?我在文档中没有找到任何相关内容。答案 0 :(得分:2)
NSString
文字(@"string literal"
)共享相同的存储空间。 NSString
文字在程序代码中无法更改,它们被编译为只读段。 NSString
变量,即在运行时创建的变量,仅由赋值共享。NSString
个实例是不可变的,创建后无法更改。 NSMutableString
个实例,并且指向此类实例的所有变量都指向相同的更改。 Swift略有不同,正如@Grimxn指出的那样,Swift String
不是一个类,不变性由声明语法决定:let
或var
。