The Science of Programming/SwayPresentations/Objects/PublicAndPrivateComponents2

Public and Private Components

We overload assignment so that only variables can appear on the left hand side of the assignment operator.

   function =($a,b)
       {
       var assign = shadowed(:=);
   
       if (type($a . code) != :VARIABLE)
          {
          throw(:restrictedAssignment,
              "you are only allowed to assign to simple variables");
          }
   
       $a assign b;
       }

So, anything like:

   x . a = 3;

throws an exception.

Since setters can access the variables directly, they are not affected by this change.


Next Previous Top