作者回复: 首先,你可以在OC里面尝试下面的代码:
NSMutableString *a = [NSMutableString new];
NSMutableString *b = a;
[b appendString:@"123"];
if (b == a) {
NSLog(@"b == a");
}
if ([b isEqualToString:a]) {
NSLog(@"b isEqualToString:a");
}
其次,swift里面String是值类型,==比较的是值是否相等,并不是比较两个变量地址。 swift里面String的==比较对标OC里的isEqualToString:方法
作者回复: 所有语言中值类型和引用类型基本特性都是一致的。 值类型和引用类型的特性包含在名字本身,而不针对特定语言
作者回复: 对,地址打印可能会不一样,但是仍然是copy on write,可以用前面学到的swiftc命令看下汇编