作者回复: 首先,你可以在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命令看下汇编