def test (x:Int, y: Int)= x*x
seklinde bir fonksiyonumuz olsun.Ve bu fonksiyonu call by value ve call by name ile calistirdigimizda gerceklesen adimlara bakalim.
test(2,3)
Call by value => 2 * 2 = 4
Call by name => 2 * 2 = 4
Yani ikisinde de ayni islemler gerceklesti.
test(2+6,12)
Call by value => 8 * 8 = 64
Call by name => (2 + 6) * (2 + 6) = 8 * (2 + 6) = 8 * 8 = 64
seklinde gerceklesir. Burada call value daha hizlidir.
test(5,6*7)
Call by value => test(5,42) => 5 * 5 = 25
Call by name => 5*5 =25
burda ise call by name daha hizlidir.
test(2+6,6*7)
Call by value => test(8,6*7) => test(8,42) => 8 * 8 = 64
Call by name => (2+6) * (2+6) => 8*(2+6) => 8 * 8 = 64
Hiç yorum yok:
Yorum Gönder