值类型
swift
的字符串是值类型,这点和 kotlin
是不一样的,kotlin 来自于 java,所以和java 一样,是对象类型。
swift 并不是每次赋值字符串都会发生拷贝,只有新的对象发生改变的时候才会发生值拷贝
可变与不可变
swift 的 String
类型可变与不可变取决于是否可以定义的字段
let str = "test" // 不可变
var str2 = "test" // 可变
感觉很完美的继承了 swift
定义的风格
kotlin 是 Jvm 语言,所以所有的字符串都是不可变的
val str1 = "test" // str1 指向的对象不可变
var str2 = "test" // str2 指向的对象可变
因此, Swift 的 字符串可以这样操作
var str = "test"
str.append("test")
而 kotlin
是没有这样方法的,只能生成一个新的字符串赋值给新的对象
var str = "test"
str = str + "test"
当然,kotlin 直接使用 StringBuilder
就能或者一致的体验了
var str = StringBuilder("test")
str.append("test")
总得来说,swift 这个地方定义要更高一筹