为了修改不可变数据,方法将会返回一个新的同类型集合。this这个类型表明返回值类型将参照类的类型。例如,当你在一个List上push一个数据时,他将会返回一个新的同类型List: class List<T> { push(value: T): this}