[swift-evolution] access control

Dave Abrahams dabrahams at apple.com
Mon Jan 25 17:47:20 CST 2016


on Mon Jan 25 2016, Ilya Belenkiy <swift-evolution at swift.org> wrote:

>> Why should the compiler enforce this? That’s my design decision.
>
> It would enforce whatever design decision you make.
>
>> For the same reason the compiler does not enforce where I have to
>> put „private“ (it can make suggestions like many IDEs do and offer
>> fix-its, like „this method can be made private as it is not used
>> outside the class“ or „this class can be put into its own file as
>> its private methods are not used by other components in this file“.
>
> But once you do put it, it enforces it, and that’s the whole point of having access control.
>
>> No, there is a clear difference: making the type name part of the
>> variable name enforces no compiler checks whereas putting something
>> into different files does.
>
> Similarly, putting all of the source code in the same file is
> equivalent to no checks.

The place where I'm most concerned about this is in playgrounds.  If
we're going to use them to teach programming, it should be possible to
demonstrate encapsulation there.

-- 
-Dave



More information about the swift-evolution mailing list