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:
Scala
Scala
- 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.
// 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)
}
}
Output:
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 :
5 13
// 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)
}
}
Output:
Here, also a variable and a method both are accessed in a same manner.13 6