[swift-evolution] idea: immutable setters for structs and tuples?
Erica Sadun
erica at ericasadun.com
Thu Mar 24 16:40:51 CDT 2016
> On Mar 24, 2016, at 3:39 PM, Brent Royal-Gordon <brent at architechies.com> wrote:
>
>>> I think this is better modeled in Swift as something like:
>>>
>>> let john = (firstName:"John", lastName:"Doe")
>>> let alice = with(john) {
>>> $0.firstName = "Alice"
>>> }
>>
>> You can kind of do this now:
>>
>> struct Person {
>> var firstName, lastName: String
>> }
>>
>> func modify<T>(item: T, update: (inout T) -> Void) -> T {
>> var this = item
>> update(&this)
>> return this
>> }
>>
>> let carol: Person = modify(john) {
>> $0.firstName = "Carol"
>> }
>>
>> print(carol)
>
> You *can* do this now. I'm suggesting it be added to Stdlib.
>
Ah, then that's a "pass it by Dmitri" kind of thing, isn't it?
-- E
More information about the swift-evolution
mailing list