The word 'external' is growing on me but as the (module access). public (unchanged) external (module access) internal (file access) private (scoped access)
module access = has external access from other files in the module. file access = has internal access to current file scope access = has only access to the current scope. Private will align with other languages definition of private. I don't think public should change and I don't like all the others to be called private(levelofprivacy). > On Mar 25, 2016, at 7:32 PM, Sean Heber via swift-evolution > <[email protected]> wrote: > > I'll throw another suggestion into the ring: > > private (scoped access) > public (file access) > internal (module access) > external (infinity and beyond) > > l8r > Sean > > Sent from my iPad > >> On Mar 25, 2016, at 8:57 PM, Ross O'Brien via swift-evolution >> <[email protected]> wrote: >> >> The specific meaning of 'public' and 'private' in programming languages >> refers to type-based symbol visibility. I'm thinking of C++, C#, Java and >> Objective C; their 'public' is Swift's 'internal'. They have no equivalent >> to Swift's 'public'. Swift has no equivalent to their 'private'. >> >> Possibly my familiarity with other languages isn't broad enough, but this is >> why I haven't understood the idea that Swift's use of 'private' is "right" >> or "obvious". You learn Swift's meanings of these terms by coding in Swift, >> you don't learn these meanings anywhere else first. >> >> To use a hopefully recognised example: an American who wants 'chips' wants >> what a Brit calls crisps; a Brit who wants chips wants what an American >> calls french fries. Which meaning of 'chips' is more intuitive? Answer: the >> one you grew up with. >> >>> On Sat, Mar 26, 2016 at 1:10 AM, Brent Royal-Gordon via swift-evolution >>> <[email protected]> wrote: >>> > all of these names (public, internal, private, local) have specific >>> > meaning in the context of computer languages. >>> >>> Yes, `local` has a meaning, but that meaning is generally *not* that it's >>> an access level. It usually has something to do with declaring variables >>> inside a function. >>> >>> For instance, Perl uses it to back up and restore a global variable. ML >>> uses it to create a scope (roughly). Lua and Julia use it to declare >>> lexical variables which are visible in enclosed scopes, which SE-0025's new >>> access level is specifically *not* supposed to allow. >>> >>> I don't know of any language where `local` is used as an access level. If >>> you're aware of an analogous use in another language, I'd be interested to >>> see it. But the examples I've found if anything *undermine* the suggestion >>> that `local` would be a good keyword choice. >>> >>> -- >>> Brent Royal-Gordon >>> Architechies >>> >>> _______________________________________________ >>> 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 > _______________________________________________ > 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
