Reassigning structures will create new ones. Mutating functions and reassigning its properties won't: they mutate it. On Wed, Dec 23, 2015 at 10:51 AM Ian Ynda-Hummel <[email protected]> wrote:
> I thought structures were immutable and mutating functions actually just > created new structures, thus maintaining the by value semantics. > On Wed, Dec 23, 2015 at 10:45 AM Lino Rosa via swift-evolution < > [email protected]> wrote: > >> I believe the language would be improved by making structures immutable. >> >> 1) The choice between classes and structures isn’t clear right now. If >> structures were immutable it would be natural to use them as value objects. >> >> 2) Refactoring a mutable structure into a class when it’s being passed >> around multiple threads removes the by-value semantics seamlessly. The >> resulting mutable class isn’t thread-safe. >> >> 2.1) Even when passed around a single thread, the resulting class would >> be passed by reference, so any mutations would have unintended consequences. >> >> 3) We could probably remove some syntax: `mutating` keyword and variable >> parameters. Also the `var` keyword before a structure could be used to >> denote reassignment (not mutability), just as it does with classes. >> >> Of corse I might not be seeing the whole picture, so please weigh in. >> > _______________________________________________ >> swift-evolution mailing list >> [email protected] >> https://lists.swift.org/mailman/listinfo/swift-evolution >> >
_______________________________________________ swift-evolution mailing list [email protected] https://lists.swift.org/mailman/listinfo/swift-evolution
