In Scala when arguments pass through call-by-value function it compute the passed-in expression’s or arguments value once before calling the function . But a call-by-Name function in Scala calls the expression and recompute the passed-in expression’s value every time it get accessed inside the function. Here example are shown with difference and syntax.
This method uses in-mode semantics. Changes made to formal parameter do not get transmitted back to the caller. Any modifications to the formal parameter variable inside the called function or method affect only the separate storage location and will not be reflected in the actual parameter in the calling environment. This method is also called as call by value.
def callByValue(x: Int)
Tanya did article on day one is 1 - Total = 1 Tanya did article on day two is 1 - Total = 1 Tanya did article on day three is 1 - Total = 1 Tanya did article on day four is 1 - Total = 1
Here, by using function call-by-value mechanism in above program total count of article not increased.
A call-by-name mechanism passes a code block to the function call and the code block is complied, executed and calculated the value. message will be printed first than returns the value.
def callByName(x: => Int)
Tanya did articles on day one is 1 - Total = 1 Tanya did articles on day two is 1 - Total = 2 Tanya did articles on day three is 1 - Total = 3 Tanya did articles on day four is 1 - Total = 4
Here, by using function call-by-name mechanism in above program total count of article will increased.
Another program of function call-by-name.
calling something x1=1 calling something x2=1
Attention reader! Don’t stop learning now. Get hold of all the important DSA concepts with the DSA Self Paced Course at a student-friendly price and become industry ready.