Scala | Uniform Access Principle

In Scala, a programming abstraction is implemented which is called as Uniform Access Principle, which states that the annotations utilized to retrieve a property of a Class is equivalent for both methods and variables. This principle was imposed forward by Bertrand Meyer. The principle simply means that the notation used to access a feature of a class shouldn’t differ depending on whether it’s a method or an attribute .
Some points to note:

  • Using this Principle attributes and functions with no parameters can be accessed by identical syntax.
  • The definition of a function with no parameters can be transformed to “var” or vice-versa.
  • This Principle is more aligned to the object oriented programming.

Example :

filter_none

edit
close

play_arrow

link
brightness_4
code

// Scala program for Uniform
// Access Principle
  
// Creating object
object Access
{
  
    // Main method
    def main(args: Array[String])
    {
  
        // Creating array
        val x : Array[Int] = Array(7, 8, 9, 10, 45)
  
        // Creating String
        val y = "GeeksforGeeks"
  
        // Accessing length of an 
        // array
        println(x.length)
  
        // Accessing length of a
        // String
        println(y.length)
    }
}

chevron_right


Output:



5
13

Now, We know that the length of an array is a variable and length of a string is a method in the Class “String” but we accessed both of them in same way.
Example :

filter_none

edit
close

play_arrow

link
brightness_4
code

// Scala program for Uniform
// Access Principle
  
// Creating object
object Access
{
  
    // Main method
    def main(args: Array[String])
    {
  
        // Creating a list
        val x = List(1, 3, 5, 7, 9, 10)
  
        // Creating a method
        def portal = {
  
        "Geeks" +"for" + "Geeks"
  
        }
  
        // Accessing size of a
        // method
        println(portal.size)
  
        // Accessing size of a
        // variable
        println(x.size)
    }
}

chevron_right


Output:

13
6

Here, also a variable and a method both are accessed in a same manner.



My Personal Notes arrow_drop_up

Check out this Author's contributed articles.

If you like GeeksforGeeks and would like to contribute, you can also write an article using contribute.geeksforgeeks.org or mail your article to contribute@geeksforgeeks.org. See your article appearing on the GeeksforGeeks main page and help other Geeks.

Please Improve this article if you find anything incorrect by clicking on the "Improve Article" button below.




Article Tags :

Be the First to upvote.


Please write to us at contribute@geeksforgeeks.org to report any issue with the above content.